forked from nikssardana/gdriveTorrent
-
Notifications
You must be signed in to change notification settings - Fork 1
/
install.sh
298 lines (261 loc) · 5.28 KB
/
install.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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
#!/bin/bash -e
red="tput setaf 1"
green="tput setaf 2"
yellow="tput setaf 3"
reset="tput sgr0"
#find tools
python=$(which python)
git=$(which git)
#locations
install_dir="${HOME}/Programs/Django"
git_repo="https://github.com/nikssardana/gdriveTorrent.git"
gdriveURL="https://docs.google.com/uc?id=0B3X9GlR6EmbnQ0FtZmJJUXEyRTA&export=download"
start_server(){
$python $install_dir/gdriveTorrent/gdriveTorrent/manage.py runserver 0.0.0.0:8000;
exit 1
}
if [ ! -z $1 ]; then
if [ -f ~/.finished_setup ]; then
if [ "$1" == "start" ]; then
start_server
else
$red
echo "unable to start webserver on port 8000..."
$reset
exit 1
fi
else
$red
echo "must have run setup first to start server, exiting..."
$reset
exit 1
fi
else
:
fi
$green
echo "##########################"
echo "# gdriveTorrent Installer"
echo "##########################"
$reset
sleep 2
if [ -f ~/.finished_setup ]; then
$yellow
echo "This script has ran before, are you sure you want to run again? (y,n)"
$reset
read answer
if [ "$answer" == "y" ]; then
:
else
$red
echo "Unrecognized input, Bye."
$reset
exit 1
fi
fi
#remove repo if cloned before
if [ -d $install_dir ];then
rm -rf $install_dir/
else
:
fi
#verify os, user
if [ $(uname -m) == "x86_64" ]; then
:
else
$red
echo "64 bit os required."
$reset
exit 1
fi
if [ "$(id -u)" != "0" ]; then
echo
$red
echo "Must be root to run this script."
$reset
exit 1
fi
## test if dependencies are installed
# test python, if pip installed, install virtualenv
if which python 1>/dev/null; then
if which pip 1>/dev/null; then
$green
echo "Upgrading pip...."
echo
$reset
pip install --upgrade pip 1>/dev/null
if pip install virtualenv 1>/dev/null; then
$green
echo "Installing virtualenv...."
echo
$reset
else
$red
echo "Could not install virtualenv."
$reset
exit 1
fi
else
$red
echo "pip not installed, please install then re-run script. (sudo apt-get update && sudo apt-get install python-pip python-dev build-essential -y)"
$reset
exit 1
fi
else
$red
echo "python not installed, please install then re-run script."
$reset
exit 1
fi
if which git 1>/dev/null; then
:
else
$red
echo "git not installed, please install then re-run script."
$reset
exit 1
fi
if which wget 1>/dev/null; then
$green
echo "Downloading gdrive..."
wget -q $gdriveURL -O /usr/bin/gdrive && chmod +x /usr/bin/gdrive
if [ $? == 0 ]; then
echo
$green
echo "gdrive downloaded successfully"
echo
$reset
else
$red
echo "gdrive download failed, exiting..."
$reset
exit 1
fi
$reset
else
$red
echo "wget not installed, please install then re-run script."
$reset
exit 1
fi
if which aria2c 1>/dev/null; then
:
else
$red
echo "aria2c not installed, install by running, (sudo apt-get install aria2 -y), then re-run this script."
$reset
exit 1
fi
if [ -d $install_dir ];then
:
else
$green
echo "Install directory does not exist, creating..."
echo
$reset
if mkdir -p $install_dir; then
:
else
$red
echo "Failed to create ${install_dir}, exiting..."
$reset
exit 1
fi
fi
$green
cd $install_dir && $git clone $git_repo 1>/dev/null
echo
$reset
if [ $? == 0 ]; then
:
else
$red
echo "git clone failed, exiting..."
$reset
exit 1
fi
if [ -d $install_dir/gdriveTorrent/gdriveTorrent ];then
chmod +x $install_dir/gdriveTorrent/gdriveTorrent/downloaded.py
else
$red
echo "Directory structure incorrect, please verify that ${install_dir}/gdriveTorrent/gdriveTorrent is the way it should be, exiting..."
$reset
exit 1
fi
$yellow
echo
echo "initializing gdrive, have your browser + gmail ready!"
echo
$reset
sleep 3
if gdrive list; then
$green
echo "gdrive initialized!"
echo
$reset
else
$red
echo "failed to initialize gdrive, exiting..."
$reset
exit 1
fi
if pip install Django 1>/dev/null; then
$green
echo "Django installed!"
echo
$reset
else
$red
echo "failed to install Django, exiting..."
$reset
exit 1
fi
if $python $install_dir/gdriveTorrent/gdriveTorrent/manage.py migrate; then
$green
echo "Created Database"
echo
$reset
else
$red
echo "Failed to create Database, exiting..."
$reset
exit 1
fi
if $python $install_dir/gdriveTorrent/gdriveTorrent/manage.py createsuperuser; then
$green
echo "Created superuser"
if sudo chown -R $(whoami):$(whoami) $install_dir/ && sudo chmod -R 755 $install_dir/; then
$yellow
echo
echo "Changed permissions on to $(whoami):$(whoami) - 755 on ${install_dir}."
echo
$reset
else
$red
echo "Failed to set permissions to $(whoami):whoami and chmod 755 on ${install_dir}, login may not work correctly..."
$reset
fi
$green
echo
echo "##################################################"
echo "# Setup Done - Navigate to http://localhost:8000 #"
echo "##################################################"
echo
$reset
else
$red
echo "Failed to create superuser, exiting..."
$reset
exit 1
fi
if $python $install_dir/gdriveTorrent/gdriveTorrent/manage.py runserver 0.0.0.0:8000; then
:
else
$red
echo "Failed to create webserver, exiting..."
$reset
exit 1
fi
touch ~/.finished_setup
$reset
exit 0