forked from oldratlee/useful-scripts
-
Notifications
You must be signed in to change notification settings - Fork 148
/
self-installer.sh
116 lines (108 loc) · 2.88 KB
/
self-installer.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/bin/bash
getType(){
echo "1 : Download and install to current folder"
echo "2 : Download only"
echo "q : Quit"
while(true) ;do
echo -n "Enter a value:"
read choice < /dev/tty
if [ "$choice" = "q" ];then exit 0;fi
if [ "$choice" -gt "0" 2>/dev/null ] && [ "$choice" -lt "4" 2>/dev/null ]; then
return $choice;
else
echo "$choice is not valid option!"
fi
done
}
do_download(){
fetch_dir=$1;
if [ ! -d $fetch_dir ]; then
echo "$fetch_dir is not vaild!"
exit 1;
fi
cd $fetch_dir
test_exists $fetch_dir
set +e
type "git" >/dev/null 2>/dev/null
has_git=$?
set -e
if [ "$has_git" -eq 0 ];then
echo "fetching source from github"
do_fetch $fetch_dir;
else
set +e
type "svn" >/dev/null 2>/dev/null
has_svn=$?
set -e
if [ "$has_svn" -eq 0 ];then
echo "fetching source from github using svn"
do_fetch $fetch_dir svn;
else
echo "can't locate svn ,using archive mode."
do_download_archive $fetch_dir;
fi
fi
echo "awesome-scripts is downloaded to $fetch_dir/awesome-scripts"
}
do_download_archive(){
wget https://codeload.github.com/superhj1987/awesome-scripts/zip/master -O awesome-scripts.zip
unzip awesome-scripts.zip
rm -rf awesome-scripts.zip
mv awesome-scripts-master awesome-scripts
cd awesome-scripts
}
do_fetch(){
fetch_dir=$1;
if [ ! -d $fetch_dir ]; then
echo "$fetch_dir is not vaild!"
exit 1;
fi
cd $fetch_dir ;
test_exists awesome-scripts;
if [[ $# < 2 || "$2" = "git" ]]; then
git clone https://github.com/superhj1987/awesome-scripts.git awesome-scripts --depth=1
else
svn checkout https://github.com/superhj1987/awesome-scripts/trunk awesome-scripts
fi
cd awesome-scripts
return 0
}
test_exists(){
if [ -e awesome-scripts ]; then
echo "$1/awesome-scripts already exist!"
while(true);do
echo -n "(q)uit or (r)eplace?"
read choice < /dev/tty
if [ "$choice" = "q" ];then
exit 0;
elif [ "$choice" = "r" ];then
rm -fr $1/awesome-scripts
break;
else
echo "$choice is not valid!"
fi
done
fi
}
do_install(){
echo '***install need sudo,please enter password***'
sudo make install
echo 'awesome-scripts was installed to /usr/local/bin,have fun.'
}
main(){
getType
type=$?
set -e
case "$type" in
("1")
echo "Launching awesome-scripts installer..."
do_download `pwd`
do_install
;;
("2")
echo "Start downloading awesome-scripts ..."
do_download `pwd`
;;
esac
}
main "$@"