1
- #! /bin/bash
1
+ #! /bin/bash
2
2
3
3
# Copyright 2011 Red Hat Inc.
4
4
#
20
20
21
21
# Install script for *nix based operating systems that do not support RPMs
22
22
23
- RUN_DIR=` dirname $0 `
23
+ #
24
+ # Make sure any params processed were consumed. We know consumption is goo
25
+ # if the params handed to this function ($1) is empty.
26
+ #
27
+ assertGoodParams () {
28
+ if [ " $1 " != " " ]
29
+ then
30
+ echo
31
+ echo " Allowable command line options:"
32
+ echo " --local When installing locally, will clone from the Solenopsis git repo."
33
+ echo " --use-git If cloning locally, will use a git URL: git clone git://github.com/solenopsis/Solenopsis.git"
34
+ echo " --use-ssh If cloning locally, will use an ssh URL: git clone ssh://github.com/solenopsis/Solenopsis.git"
35
+ echo
36
+ echo " By default when assuming no clone option presented, will use:"
37
+ echo " git clone http://github.com/solenopsis/Solenopsis.git"
38
+ echo
39
+ exit 1
40
+ fi
41
+ }
24
42
25
- ${ RUN_DIR} /uninstall.sh
43
+ RUN_DIR= ` dirname $0 `
26
44
27
45
RUN_LOCAL=" "
28
46
GIT_PROTOCOL=" https"
47
+ BAD_PARAM=" "
48
+
49
+ echo
29
50
51
+ #
52
+ # Process params handed in...
53
+ #
30
54
for PARAM in $*
31
55
do
32
56
if [ " ${PARAM} " = " --local" ]
38
62
elif [ " ${PARAM} " = " --use-ssh" ]
39
63
then
40
64
GIT_PROTOCOL=" ssh"
65
+ else
66
+ #
67
+ # Unknown param...
68
+ #
69
+ echo " *** WARNING: Unknown param [${PARAM} ]"
70
+ BAD_PARAM=" ${BAD_PARAM} ${PARAM} "
41
71
fi
42
72
done
43
73
74
+ #
75
+ # Should we have concatenated all bad params, we will
76
+ # fail here with a useful command line options message
77
+ # and exit...
78
+ #
79
+ assertGoodParams " ${BAD_PARAM} "
80
+
81
+ ${RUN_DIR} /uninstall.sh
82
+
83
+ echo
84
+
44
85
if [ " ${RUN_LOCAL} " = " " ]
45
86
then
46
- echo " Cloning the solenopsis git repo"
47
-
48
87
rm -rf Solenopsis
49
88
50
89
CLONE_CMD=" git clone ${GIT_PROTOCOL} ://github.com/solenopsis/Solenopsis.git"
51
- echo " ${CLONE_CMD} "
52
- ` ${CLONE_CMD} `
90
+ echo " Cloning the solenopsis git repo via: [${CLONE_CMD} ]"
91
+ echo
92
+ ${CLONE_CMD}
93
+ echo
53
94
54
95
cd Solenopsis
55
96
else
56
97
cd ${RUN_DIR}
57
98
fi
58
99
59
-
60
100
RUNNING_OS=` uname -s`
61
101
62
102
case $RUNNING_OS in
63
103
Linux)
64
- SOLENOPSIS_BASH_COMPLETION_HOME=/etc/bash_completion.d
65
- SOLENOPSIS_INSTALL_HOME=/usr/share
66
- SOLENOPSIS_BINARIES=/usr/bin
67
- SOLENOPSIS_PROFILE_PATH=/etc/profile.d
104
+ SOLENOPSIS_BASH_COMPLETION_HOME=/etc/bash_completion.d
105
+ SOLENOPSIS_INSTALL_HOME=/usr/share
106
+ SOLENOPSIS_BINARIES=/usr/bin
107
+ SOLENOPSIS_PROFILE_PATH=/etc/profile.d
68
108
;;
69
109
Darwin)
70
- SOLENOPSIS_BASH_COMPLETION_HOME=/usr/local/etc/bash_completion.d
71
- SOLENOPSIS_BINARIES=/usr/local/bin
72
- SOLENOPSIS_PROFILE_PATH=
73
- if type brew > /dev/null; then
74
- SOLENOPSIS_INSTALL_HOME=/usr/local/Cellar
75
- else
76
- SOLENOPSIS_INSTALL_HOME=/usr/share
77
- fi
110
+ SOLENOPSIS_BASH_COMPLETION_HOME=/usr/local/etc/bash_completion.d
111
+ SOLENOPSIS_BINARIES=/usr/local/bin
112
+ SOLENOPSIS_PROFILE_PATH=
113
+ if type brew > /dev/null; then
114
+ SOLENOPSIS_INSTALL_HOME=/usr/local/Cellar
115
+ else
116
+ SOLENOPSIS_INSTALL_HOME=/usr/share
117
+ fi
78
118
;;
79
119
esac
80
120
81
- echo " Installing solenopsis"
121
+ echo " Installing solenopsis for [${RUNNING_OS} ] to: [${SOLENOPSIS_INSTALL_HOME} ]..."
122
+
123
+ echo " Creating appropriate directory structure..."
82
124
83
125
mkdir -p $SOLENOPSIS_INSTALL_HOME /solenopsis/config
84
126
mkdir -p $SOLENOPSIS_INSTALL_HOME /solenopsis/docs
@@ -98,6 +140,8 @@ mkdir -p $SOLENOPSIS_INSTALL_HOME/solenopsis/scripts
98
140
mkdir -p $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/lib
99
141
mkdir -p $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/templates
100
142
143
+ echo " Copying configuration files..."
144
+
101
145
cp config/defaults.cfg $SOLENOPSIS_INSTALL_HOME /solenopsis/config/
102
146
cp docs/* $SOLENOPSIS_INSTALL_HOME /solenopsis/docs/
103
147
cp -rf ant $SOLENOPSIS_INSTALL_HOME /solenopsis
@@ -107,27 +151,34 @@ cp scripts/lib/* $SOLENOPSIS_INSTALL_HOME/solenopsis/scripts/lib/
107
151
cp scripts/templates/* $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/templates/
108
152
cp scripts/solenopsis-profile.sh $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/
109
153
154
+ echo " Cleaning up old Python files..."
110
155
111
156
rm -rf $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/* .pyc
112
157
rm -rf $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/* .pyo
113
158
rm -rf $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/lib/* .pyc
114
159
rm -rf $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/lib/* .pyo
115
160
161
+ echo " Setting script permisions to execute and creating sym links..."
162
+
116
163
chmod 755 $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/*
117
164
118
165
ln -sf $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/solenopsis $SOLENOPSIS_BINARIES /solenopsis
119
166
ln -sf $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/bsolenopsis $SOLENOPSIS_BINARIES /bsolenopsis
120
167
121
168
case $RUNNING_OS in
122
169
Linux)
123
- SOLENOPSIS_BASH_COMPLETION_HOME=/etc/bash_completion.d
124
- ln -sf $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/solenopsis-profile.sh $SOLENOPSIS_PROFILE_PATH /solenopsis-profile.sh
170
+ SOLENOPSIS_BASH_COMPLETION_HOME=/etc/bash_completion.d
171
+ ln -sf $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/solenopsis-profile.sh $SOLENOPSIS_PROFILE_PATH /solenopsis-profile.sh
125
172
;;
126
173
esac
127
174
175
+ echo " Defining Solenopsis bash completion..."
176
+
128
177
if [ -d " ${SOLENOPSIS_BASH_COMPLETION_HOME} " ]
129
178
then
130
179
ln -sf $SOLENOPSIS_INSTALL_HOME /solenopsis/scripts/solenopsis-completion.bash ${SOLENOPSIS_BASH_COMPLETION_HOME} /solenopsis-completion.bash
131
180
else
132
181
echo " WARNING: Bash completion dir [${SOLENOPSIS_BASH_COMPLETION_HOME} ] for [${RUNNING_OS} ] does not exist. Ignoring solenopsis completion script."
133
182
fi
183
+
184
+ echo
0 commit comments