11#! /bin/bash
22
3- if [ -f " /etc/redhat-release" ]
3+ SWIFTBOX_VERSION=" 0.7"
4+ INSTALL_DIR=" /usr/bin"
5+
6+ if [ -f /etc/redhat-release ]
47then
58 REDHAT_RELEASE=` cat /etc/redhat-release`
69 if [[ $REDHAT_RELEASE =~ " CentOS" || $REDHAT_RELEASE =~ " Red Hat Enterprise Linux" ]]
710 then
811 SYSTEM_NAME=" centos"
12+ SYSTEM_NICENAME=" CentOS/RHEL"
913 SYSTEM_VERSION=` cat /etc/redhat-release | grep -E " release \d+" -o | sed " s/release //" `
1014 else
1115 UNSUPPORTED_SYSTEM=$REDHAT_RELEASE
1216 fi
1317elif hash lsb_release 2> /dev/null
1418then
15- if [ " E ` lsb_release -i --short` " = " EUbuntu " ]
19+ if [ ` lsb_release -i --short` = " Ubuntu " ]
1620 then
1721 SYSTEM_NAME=" ubuntu"
22+ SYSTEM_NICENAME=" Ubuntu"
1823 SYSTEM_VERSION=` lsb_release -r --short`
1924 else
2025 UNSUPPORTED_SYSTEM=` lsb_release -d -s`
2126 fi
27+ elif hash uname 2> /dev/null
28+ then
29+ UNSUPPORTED_SYSTEM=` uname -v`
30+ else
31+ UNSUPPORTED_SYSTEM=" This strange OS"
2232fi
2333
24- if [ " E $UNSUPPORTED_SYSTEM " != " E " ]
34+ if [ $UNSUPPORTED_SYSTEM ]
2535then
2636 echo " This program only supports Ubuntu and CentOS (RHEL). "
2737 echo " $UNSUPPORTED_SYSTEM is unsupported. "
2838 exit 255
2939fi
3040
31- SWIFTBOX_VERSION=" 0.6.3"
32- INSTALL_DIR=" /usr/bin"
33-
3441get-latest () {
3542 curl -fsSL https://api.github.com/repos/stevapple/swiftbox/releases/latest | jq .tag_name | sed " s/v//" | sed " s/\" //g"
3643}
@@ -42,28 +49,28 @@ reinit-env() {
4249}
4350
4451enable-swiftbox () {
45- if [ -e $ANOTHER_WD /env.sh ]
52+ if [ -f $ANOTHER_WD /env.sh ]
4653 then
47- if [ -e $HOME /.zshrc ]
54+ if [ -f $HOME /.zshrc ]
4855 then
4956 reinit-env $HOME /.zshrc
5057 fi
51- if [ -e $HOME /.bashrc ]
58+ if [ -f $HOME /.bashrc ]
5259 then
5360 reinit-env $HOME /.bashrc
54- elif [ -e $HOME /.bash_profile ]
61+ elif [ -f $HOME /.bash_profile ]
5562 then
5663 reinit-env $HOME /.bash_profile
5764 fi
5865 else
59- if [ -e $HOME /.zshrc ]
66+ if [ -f $HOME /.zshrc ]
6067 then
6168 echo " source $WORKING_DIR /env.sh" >> $HOME /.zshrc
6269 fi
63- if [ -e $HOME /.bashrc ]
70+ if [ -f $HOME /.bashrc ]
6471 then
6572 echo " source $WORKING_DIR /env.sh" >> $HOME /.bashrc
66- elif [ -e $HOME /.bash_profile ]
73+ elif [ -f $HOME /.bash_profile ]
6774 then
6875 echo " source $WORKING_DIR /env.sh" >> $HOME /.bash_profile
6976 fi
@@ -76,8 +83,8 @@ init-env() {
7683 mkdir $WORKING_DIR /toolchain
7784 mkdir $WORKING_DIR /download
7885 echo " Created swiftbox working directory at $WORKING_DIR . "
79- echo -e " if [ -e $WORKING_DIR /.swift-version ]\nthen\n\texport PATH=$WORKING_DIR /toolchain/swift-\` cat $WORKING_DIR /.swift-version\` /usr/bin:\$ PATH\nfi" > $WORKING_DIR /env.sh
80- if [ ` id -u` -eq 0 ]
86+ echo -e " if [ -f $WORKING_DIR /.swift-version ]\nthen\n\texport PATH=$WORKING_DIR /toolchain/swift-\` cat $WORKING_DIR /.swift-version\` /usr/bin:\$ PATH\nfi" > $WORKING_DIR /env.sh
87+ if [ ` id -u` = 0 ]
8188 then
8289 $SUDO_FLAG ln -s $WORKING_DIR /env.sh /etc/profile.d/swiftbox.sh
8390 fi
@@ -96,7 +103,7 @@ init-env() {
96103}
97104
98105format-version () {
99- if [ " E $1 " = E ]
106+ if [ ! $1 ]
100107 then
101108 echo " Please specify Swift version. "
102109 return 12
@@ -115,7 +122,7 @@ format-version() {
115122 echo " $(( 10 #${VERSION_ARRAY[0]} )) .$(( 10 #${VERSION_ARRAY[1]} )) "
116123 ;;
117124 3)
118- if [ ${VERSION_ARRAY[2]} -eq 0 ]
125+ if [ ${VERSION_ARRAY[2]} = 0 ]
119126 then
120127 echo " $(( 10 #${VERSION_ARRAY[0]} )) .$(( 10 #${VERSION_ARRAY[1]} )) "
121128 else
@@ -148,14 +155,14 @@ disable-swift() {
148155 local SWIFT_VERSION=` default-version`
149156 rm -f $WORKING_DIR /.swift-version
150157 ensure-env
151- if [ ! E $SWIFT_VERSION = E ]
158+ if [ ! $SWIFT_VERSION ]
152159 then
153160 echo " Swift $SWIFT_VERSION is now disabled. "
154161 fi
155162}
156163
157164default-version () {
158- if [ ! -e $WORKING_DIR /.swift-version ]
165+ if [ ! -f $WORKING_DIR /.swift-version ]
159166 then
160167 echo " "
161168 else
@@ -167,7 +174,7 @@ check-version() {
167174 local DOWNLOAD_URL=" https://swift.org/builds/swift-$1 -release/$SYSTEM_NAME ${SYSTEM_VERSION// ./ } /swift-$1 -RELEASE/swift-$1 -RELEASE-$SYSTEM_NAME$SYSTEM_VERSION .tar.gz"
168175 wget --no-check-certificate -q --spider $DOWNLOAD_URL
169176 WGET_RESULT=$?
170- if [ $WGET_RESULT -eq 8 ]
177+ if [ $WGET_RESULT = 8 ]
171178 then
172179 echo " Swift $1 does not exist or does not support your Ubuntu version. "
173180 return 2
@@ -189,27 +196,27 @@ get-swift() {
189196 local DOWNLOAD_URL=" https://swift.org/builds/swift-$NEW_VERSION -release/$SYSTEM_NAME ${SYSTEM_VERSION// ./ } /swift-$NEW_VERSION -RELEASE/$FILE_NAME .tar.gz"
190197 check-version $NEW_VERSION
191198 VERSION_AVAILABILITY=$?
192- if [ ! $VERSION_AVAILABILITY -eq 0 ]
199+ if [ $VERSION_AVAILABILITY != 0 ]
193200 then
194201 return $VERSION_AVAILABILITY
195202 fi
196- if [ -e " download/$FILE_NAME .tar.gz.sig" ]
203+ if [ -f download/$FILE_NAME .tar.gz.sig ]
197204 then
198205 wget -c -t 5 -P download " $DOWNLOAD_URL .sig"
199206 else
200- if [ -e " download/$FILE_NAME .tar.gz" ]
207+ if [ -f download/$FILE_NAME .tar.gz ]
201208 then
202209 wget -c -t 0 -P download $DOWNLOAD_URL
203210 else
204211 wget -t 5 -P download $DOWNLOAD_URL
205212 fi
206- wget -t 5 -P download " $DOWNLOAD_URL .sig"
213+ wget -t 5 -P download $DOWNLOAD_URL .sig
207214 fi
208215 $SUDO_FLAG gpg --keyserver hkp://pool.sks-keyservers.net --refresh-keys Swift
209- $SUDO_FLAG gpg --verify " download/$FILE_NAME .tar.gz.sig"
210- tar -xzf " download/$FILE_NAME .tar.gz" -C " temp"
211- mv " temp/$FILE_NAME " " toolchain/swift-$NEW_VERSION "
212- if [ ! -e .swift-version ]
216+ $SUDO_FLAG gpg --verify download/$FILE_NAME .tar.gz.sig
217+ tar -xzf download/$FILE_NAME .tar.gz -C temp
218+ mv temp/$FILE_NAME toolchain/swift-$NEW_VERSION
219+ if [ ! -f .swift-version ]
213220 then
214221 echo " Automatically set Swift $NEW_VERSION as default. "
215222 use-version $NEW_VERSION
@@ -218,7 +225,7 @@ get-swift() {
218225
219226use-version () {
220227 is-kept $1
221- if [ $? -eq 0 ]
228+ if [ $? = 0 ]
222229 then
223230 echo $1 > $WORKING_DIR /.swift-version
224231 ensure-env
@@ -241,21 +248,21 @@ is-kept() {
241248}
242249
243250ensure-env () {
244- if [ ! -e $WORKING_DIR ]
251+ if [ ! -d $WORKING_DIR ]
245252 then
246253 echo " It seems you're using swiftbox for the very first time. Let's set up the supporting environment. "
247254 init-env
248255 else
249- if [ ! E` default-version` = E ]
256+ if [ E` default-version` ! = E ]
250257 then
251- hash swift 2> /dev/null || enable-swiftbox
258+ hash swift 2> /dev/null || enable-swiftbox
252259 fi
253260 hash -r
254261 rm -rf $WORKING_DIR /temp/*
255262 fi
256263}
257264
258- if [ ` id -u` -eq 0 ]
265+ if [ ` id -u` = 0 ]
259266then
260267 WORKING_DIR=" /opt/swiftbox"
261268 ANOTHER_WD=" $HOME /.swiftbox"
265272 SUDO_FLAG=" sudo"
266273fi
267274
268- if [ $# -eq 0 ]
275+ if [ $# = 0 ]
269276then
270277 echo " Please specify a command. "
271278 exit 240
276283 ensure-env
277284 FORMATTED_VERSION=` format-version $2 `
278285 FORMAT_RESULT=$?
279- if [ ! $FORMAT_RESULT -eq 0 ]
286+ if [ $FORMAT_RESULT != 0 ]
280287 then
281288 echo $FORMATTED_VERSION
282289 exit $FORMAT_RESULT
287294 exit 34
288295 fi
289296 is-kept $FORMATTED_VERSION
290- if [ $? -eq 0 ]
297+ if [ $? = 0 ]
291298 then
292299 echo " Swift $FORMATTED_VERSION is kept locally, you can enable it with: $0 use $FORMATTED_VERSION "
293300 exit 33
@@ -299,7 +306,7 @@ remove)
299306 ensure-env
300307 FORMATTED_VERSION=` format-version $2 `
301308 FORMAT_RESULT=$?
302- if [ ! $FORMAT_RESULT -eq 0 ]
309+ if [ $FORMAT_RESULT != 0 ]
303310 then
304311 echo $FORMATTED_VERSION
305312 exit $FORMAT_RESULT
@@ -311,7 +318,7 @@ remove)
311318use)
312319 FORMATTED_VERSION=` format-version $2 `
313320 FORMAT_RESULT=$?
314- if [ ! $FORMAT_RESULT -eq 0 ]
321+ if [ $FORMAT_RESULT != 0 ]
315322 then
316323 echo $FORMATTED_VERSION
317324 exit $FORMAT_RESULT
@@ -335,21 +342,21 @@ version)
335342lookup)
336343 FORMATTED_VERSION=` format-version $2 `
337344 FORMAT_RESULT=$?
338- if [ ! $FORMAT_RESULT -eq 0 ]
345+ if [ $FORMAT_RESULT != 0 ]
339346 then
340347 echo $FORMATTED_VERSION
341348 exit $FORMAT_RESULT
342349 fi
343350 check-version $FORMATTED_VERSION
344351 VERSION_AVAILABILITY=$?
345- if [ ! $VERSION_AVAILABILITY -eq 0 ]
352+ if [ $VERSION_AVAILABILITY != 0 ]
346353 then
347354 exit $VERSION_AVAILABILITY
348355 fi
349- echo " Swift $FORMATTED_VERSION is available for Ubuntu $UBUNTU_VERSION . "
356+ echo " Swift $FORMATTED_VERSION is available for $SYSTEM_NICENAME $SYSTEM_VERSION . "
350357;;
351358update)
352- if [ ! $( cd ` dirname $0 ` ; pwd) = $INSTALL_DIR ]
359+ if [ $( cd ` dirname $0 ` ; pwd) ! = $INSTALL_DIR ]
353360 then
354361 echo " swiftbox is not installed to system, update is unavailable. "
355362 echo " You can install it with: $0 install"
@@ -359,7 +366,7 @@ update)
359366 exit $?
360367;;
361368install)
362- if [ ! $( cd ` dirname $0 ` ; pwd) = $INSTALL_DIR ]
369+ if [ $( cd ` dirname $0 ` ; pwd) ! = $INSTALL_DIR ]
363370 then
364371 echo " swiftbox is already installed to system. "
365372 exit 1
@@ -371,9 +378,9 @@ list)
371378 ensure-env
372379 for file in ` ls -1 $WORKING_DIR /toolchain`
373380 do
374- if [ -d " $WORKING_DIR /toolchain/$file " ]
381+ if [ -d $WORKING_DIR /toolchain/$file ]
375382 then
376- if [ $file = " swift-` default-version` " ]
383+ if [ $file = swift-` default-version` ]
377384 then
378385 echo " * ${file# swift\- } "
379386 else
0 commit comments