Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Lucksi
GitHub Repository: Lucksi/Mr.Holmes
Path: blob/master/install.sh
1071 views
1
# #!/bin/bash
2
# ORIGINAL CREATOR: Luca Garofalo (Lucksi)
3
# AUTHOR: Luca Garofalo (Lucksi)
4
# Copyright (C) 2021-2023 Lucksi <[email protected]>
5
# License: GNU General Public License v3.0
6
7
. /etc/os-release
8
DIST="$ID"
9
BLUE=$(tput setaf 6)
10
GREEN=$(tput setaf 2)
11
WHITE=$(tput setaf 15)
12
LIGHTGREEN=$(tput setaf 10)
13
RED=$(tput setaf 1)
14
ROOT=$(id -u)
15
16
function Check_Root {
17
if [ $ROOT -ne 0 ];
18
then
19
clear
20
banner
21
printf "${RED}\n\n[!]${WHITE}SORRY THIS SCRIPT MUST BE EXECUTED AS A ROOT\n\n"
22
exit 1
23
fi
24
installer
25
}
26
27
function banner {
28
clear
29
reader=$(<"Banners/Banner6.txt")
30
echo "${GREEN}$reader"
31
}
32
33
function Preference {
34
printf "${WHITE}\nSELECT YOUR GUI-DEFAULT LANGUAGE\n(1)ENGLISH\n(2)ITALIANO\n(3)FRANÇAIS\n(4)BROWSER-LANGUAGE\n\n"
35
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Language
36
while [ "$Language" == "" ];
37
do
38
printf "${WHITE}\nSELECT YOUR GUI-DEFAULT LANGUAGE\n(1)ENGLISH\n(2)ITALIANO\n(3)FRANÇAIS\n(4)BROWSER-LANGUAGE\n\n"
39
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Language
40
done
41
if [ $Language == 1 ];
42
then
43
echo '{
44
"Language":{
45
"Preference":"English"
46
}
47
}'>GUI/Language/Language.json
48
mode="ENGLISH"
49
elif [ $Language == 2 ];
50
then
51
echo '{
52
"Language":{
53
"Preference":"Italian"
54
}
55
}'>GUI/Language/Language.json
56
mode="ITALIANO"
57
elif [ $Language == 3 ];
58
then
59
echo '{
60
"Language":{
61
"Preference":"French"
62
}
63
}'>GUI/Language/Language.json
64
mode="FRANÇAIS"
65
elif [ $Language == 4 ];
66
then
67
echo '{
68
"Language":{
69
"Preference":"Browser"
70
}
71
}'>GUI/Language/Language.json
72
mode="BROWSER"
73
fi
74
printf "\n${WHITE}GUI-LANGUAGE:${GREEN}$mode\n"
75
printf "${WHITE}\nSELECT YOUR GUI-DEFAULT THEME\n(1)LIGHT\n(2)DARK\n(3)HIGH-CONTRAST\n\n"
76
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Theme
77
while [ "$Language" == "" ];
78
do
79
printf "${WHITE}\nSELECT YOUR GUI-DEFAULT THEME\n(1)LIGHT\n(2)DARK\n(3)HIGH-CONTRAST\n\n"
80
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Language
81
done
82
if [ $Theme == 1 ];
83
then
84
echo '{
85
"Color":{
86
"Background":"Light"
87
}
88
}'>GUI/Theme/Mode.json
89
mode="LIGHT"
90
elif [ $Theme == 2 ];
91
then
92
echo '{
93
"Color":{
94
"Background":"Dark"
95
}
96
}'>GUI/Theme/Mode.json
97
mode="DARK"
98
elif [ $Theme == 3 ];
99
then
100
echo '{
101
"Color":{
102
"Background":"High-Contrast"
103
}
104
}'>GUI/Theme/Mode.json
105
mode="HIGH-CONTRAST"
106
fi
107
printf "\n${WHITE}GUI-THEME:${GREEN}$mode\n"
108
}
109
110
function Packet_Installer {
111
sudo apt-get install git -y &> /dev/null | printf "${WHITE}\nINSTALLING GIT\n"
112
sudo apt-get install python3 -y &> /dev/null | printf "${WHITE}\nINSTALLING PYTHON3\n"
113
sudo apt-get install python3-pip -y &> /dev/null | printf "${WHITE}\nINSTALLING PIP"
114
sudo apt-get install whois -y &> /dev/null | printf "${WHITE}\n\nINSTALLING WHOIS"
115
sudo apt-get install inetutils-traceroute -y &> /dev/null | printf "${WHITE}\n\nINSTALLING TRACEROUTE"
116
sudo apt-get install php -y &> /dev/null | printf "${WHITE}\n\nINSTALLING PHP"
117
sudo apt-get install wkhtmltopdf -y &> /dev/null | printf "${WHITE}\n\nINSTALLING WKHTMLTOPDF"
118
sudo pip3 install -r requirements.txt &> /dev/null | printf "${BLUE}\n\nINSTALLING-PYTHON-REQUIREMENTS..."
119
printf "${GREEN}\n\n[+]${WHITE}REQUIREMENTS INSTALLED SUCCESFULLY${GREEN}[+]"
120
}
121
122
function Mail_Options {
123
printf "${BLUE}\n\n[?]${WHITE}WOULD YOU LIKE TO ENABLE EMAIL-OPTION(1)YES(2)NO\n\n"
124
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Opt
125
while [ "$Opt" = "" ];
126
do
127
printf "${BLUE}\n[?]${WHITE}WOULD YOU LIKE TO ENABLE EMAIL-OPTION(1)YES(2)NO\n\n"
128
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Opt
129
done
130
if [ $Opt == 1 ];
131
then
132
status="Enabled"
133
printf "${WHITE}\n\nINSERT YOUR RECIPIENT EMAIL\n\n"
134
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" recipient
135
while [ "$recipient" = "" ];
136
do
137
printf "${WHITE}\nINSERT YOUR RECIPIENT EMAIL\n\n"
138
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" recipient
139
done
140
printf "${WHITE}\nINSERT YOUR EMAIL PASSWORD\n\n"
141
read -sp"$GREEN[#MR.HOLMES#]$WHITE-->" password
142
while [ "$password" = "" ];
143
do
144
printf "${WHITE}\nINSERT YOUR EMAIL PASSWORD\n\n"
145
read -sp"$GREEN[#MR.HOLMES#]$WHITE-->" password
146
done
147
printf "${WHITE}\n\nINSERT YOUR DESTINATION EMAIL\n\n"
148
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" destination
149
while [ "$destination" = "" ];
150
do
151
printf "${WHITE}\nINSERT YOUR DESTINATION EMAIL\n\n"
152
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" destination
153
done
154
printf "${WHITE}\nINSERT YOUR SMTP SERVER EX smtp.test.com\n\n"
155
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" server
156
while [ "$server" = "" ];
157
do
158
printf "${WHITE}\nINSERT YOUR SMTP SERVER EX smtp.test.com\n\n"
159
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" server
160
done
161
printf "${WHITE}\nINSERT YOUR SMTP SERVER PORT EX 768\n\n"
162
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" port
163
while [ "$port" = "" ];
164
do
165
printf "${WHITE}\nINSERT YOUR SMTP SERVER PORT \n\n"
166
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" port
167
done
168
elif [ $Opt == 2 ];
169
then
170
printf "${GREEN}\n[+]${WHITE}SKIPPING...\n"
171
status="Disabled"
172
recipient="None"
173
password="None"
174
destination="None"
175
server="None"
176
port="None"
177
else
178
Mail_Options
179
fi
180
:
181
}
182
183
function Options {
184
printf "${WHITE}\nINSERT YOUR UPDATE-PASSWORD\n\n"
185
read -sp"$GREEN[#MR.HOLMES#]$WHITE-->" up_pass
186
while [ "$up_pass" = "" ];
187
do
188
printf "${WHITE}\nINSERT YOUR UPDATE-PASSWORD \n\n"
189
read -sp"$GREEN[#MR.HOLMES#]$WHITE-->" up_pass
190
done
191
printf "${WHITE}\n\nINSERT YOUR WHO-IS-XMLAPI-KEY(LEAVE EMPTY IF YOU HAVENT ONE)\n\n"
192
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" key
193
if [ "$key" == "" ];
194
then
195
key="None"
196
fi
197
printf "${WHITE}\n\nINSERT YOUR PROXY_LIST FULL-PATH(LEAVE EMPTY IF YOU WANT THE DEFAULT LIST)\n\n"
198
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" proxies
199
if [ "$proxies" == "" ];
200
then
201
proxies="Proxies/Proxy_list.txt"
202
fi
203
printf "${WHITE}\n\nINSERT YOUR USERAGENT_LIST FULL-PATH(LEAVE EMPTY IF YOU WANT THE DEFAULT LIST)\n\n"
204
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" useragent
205
if [ "$useragent" == "" ];
206
then
207
useragent="Useragents/Useragent.txt"
208
fi
209
printf "${WHITE}\n\nWOULD YOU LIKE TO SAVE YOUR LOG SESSIONS(1)YES(2)NO\n\n"
210
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Logs
211
while [ "$Logs" == "" ];
212
do
213
printf "${WHITE}\n\nWOULD YOU LIKE TO SAVE YOUR LOG SESSIONS(1)YES(2)NO\n\n"
214
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Logs
215
done
216
if [ $Logs == 2 ];
217
then
218
Logs="False"
219
else [ $Logs == 1 ]
220
Logs="True"
221
fi
222
printf "${WHITE}\n\nWOULD YOU LIKE TO ACCESS YOUR DATABASE ON OTHER DEVICES(ON THE SAME NETWORK)?(1)YES(2)NO\n\n"
223
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Token
224
while [ "$Token" == "" ];
225
do
226
printf "${WHITE}\n\nWOULD YOU LIKE TO ACCESS YOUR DATABASE ON OTHER DEVICES(ON THE SAME NETWORK)?(1)YES(2)NO\n\n"
227
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Token
228
done
229
if [ $Token == 2 ];
230
then
231
Token="False"
232
else [ $Token == 1 ]
233
Token="True"
234
fi
235
printf "${WHITE}\n\nWOULD YOU LIKE TO ADD SOME CREDENTIALS FOR ACCESS THE DATABASE?(1)YES(2)NO\n\n"
236
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Access
237
while [ "$Access" == "" ];
238
do
239
printf "${WHITE}\n\nWOULD YOU LIKE TO ADD SOME CREDENTIALS FOR ACCESS THE DATABASE?(1)YES(2)NO\n\n"
240
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Access
241
done
242
if [ $Access == 2 ];
243
then
244
Access="False"
245
else [ $Token == 1 ]
246
Access="True"
247
fi
248
if [ "$Access" == "True" ];
249
then
250
echo '{
251
"Database":{
252
"Status": "Active"
253
}
254
}'>GUI/Credentials/Login.json
255
echo '{
256
"Users":[
257
{
258
"Username": "Admin",
259
"Password": "Qwerty123"
260
}
261
]
262
}'>GUI/Credentials/Users.json
263
printf "\n${WHITE}YOUR DEFAULT CREDENTIALS ARE:\nUSERNAME:${GREEN}Admin\n${WHITE}PASSWORD:${GREEN}Qwerty123\n"
264
else [ "$Access" == "False" ]
265
echo '{
266
"Database":{
267
"Status": "Deactive"
268
}
269
}'>GUI/Credentials/Login.json
270
echo '{
271
"Users":[
272
{
273
"Username": "",
274
"Password": ""
275
}
276
]
277
}'>GUI/Credentials/Users.json
278
fi
279
printf "${WHITE}\nSELECT YOUR CLI-DEFAULT LANGUAGE\n(1)ENGLISH\n(2)ITALIANO\n(3)FRANÇAIS\n\n"
280
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Language
281
while [ "$Language" == "" ];
282
do
283
printf "${WHITE}\nSELECT YOUR CLI-DEFAULT LANGUAGE\n(1)ENGLISH\n(2)ITALIANO\n(3)FRANÇAIS\n\n"
284
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" Language
285
done
286
if [ $Language == 1 ];
287
then
288
Lang="english"
289
mode="ENGLISH"
290
291
elif [ $Language == 2 ];
292
then
293
Lang="italian"
294
mode="ITALIANO"
295
296
elif [ $Language == 3 ];
297
then
298
Lang="french"
299
mode="FRANÇAIS"
300
fi
301
printf "\n${WHITE}CLI-LANGUAGE:${GREEN}$mode\n"
302
printf "${WHITE}\nSELECT YOUR DATE-FORMAT\n(1)EUROPE(DD/MM/YYYY)\n(2)AMERICA'USA'(MM/DD/YYYY)\n(3)ASIA(YYYY/MM/DD)\n\n"
303
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" DateFormat
304
while [ "$DateFormat" == "" ];
305
do
306
printf "${WHITE}\nSELECT YOUR DATE-FORMAT\n(1)EUROPE(DD/MM/YYYY)\n(2)AMERICA'USA'(MM/DD/YYYY)\n(3)ASIA(YYYY/MM/DD)\n\n"
307
read -p"$GREEN[#MR.HOLMES#]$WHITE-->" DateFormat
308
done
309
if [ $DateFormat == 1 ];
310
then
311
Date="eu"
312
mode="EUROPE(EU)"
313
314
elif [ $DateFormat == 2 ];
315
then
316
Date="us"
317
mode="AMERICA(US)"
318
319
elif [ $DateFormat == 3 ];
320
then
321
Date="as"
322
mode="ASIA(AS)"
323
fi
324
printf "\n${WHITE}DATE-FORMAT:${GREEN}$mode\n"
325
Preference
326
printf "${BLUE}\nCREATING CONFIGURATION FILE"
327
cd Configuration
328
echo ";THIS FILE HAS BEEN GENERATE BY MR.HOLMES INSTALLER">Configuration.ini
329
echo ";CHANGE THESE VALUE IF YOU WANT TO UPDATE YOUR SETTINGS FROM HERE">>Configuration.ini
330
echo ";BUT DO NOT CHANGE THE PARAMETERS NAME">>Configuration.ini
331
echo "">>Configuration.ini
332
echo "[Smtp]">>Configuration.ini
333
echo "status = $status">>Configuration.ini
334
echo "email = $recipient">>Configuration.ini
335
echo "password = $password">>Configuration.ini
336
echo "destination = $destination">>Configuration.ini
337
echo "server= $server">>Configuration.ini
338
echo "port= $port">>Configuration.ini
339
echo "">>Configuration.ini
340
echo "[Settings]">>Configuration.ini
341
echo "password = $up_pass">>Configuration.ini
342
echo "api_key = $key">>Configuration.ini
343
echo "proxy_list" = $proxies>>Configuration.ini
344
echo "useragent_list" = $useragent>>Configuration.ini
345
echo "show_logs = $Logs">>Configuration.ini
346
echo "database"= "$Token">>Configuration.ini
347
echo "language"= "$Lang">>Configuration.ini
348
echo "date_format"= "$Date">>Configuration.ini
349
rm UNTILED.txt &> /dev/null
350
}
351
352
function AutoInstaller {
353
printf "${GREEN}\n[+]${WHITE}AUTO-INSTALLER MODE...\n"
354
Packet_Installer
355
printf "\n\n${BLUE}[+]${WHITE}CREATING CONFIGURATION FILES..."
356
sleep 5
357
echo '{
358
"Database":{
359
"Status": "Deactive"
360
}
361
}'>GUI/Credentials/Login.json
362
echo '{
363
"Users":[
364
{
365
"Username": "",
366
"Password": ""
367
}
368
]
369
}'>GUI/Credentials/Users.json
370
echo '{
371
"Color":{
372
"Background":"Light"
373
}
374
}'>GUI/Theme/Mode.json
375
echo '{
376
"Language":{
377
"Preference":"Browser"
378
}
379
}'>GUI/Language/Language.json
380
echo ";THIS FILE HAS BEEN GENERATE BY MR.HOLMES INSTALLER">Configuration/Configuration.ini
381
echo ";CHANGE THESE VALUE IF YOU WANT TO UPDATE YOUR SETTINGS FROM HERE">>Configuration/Configuration.ini
382
echo ";BUT DO NOT CHANGE THE PARAMETERS NAME">>Configuration/Configuration.ini
383
echo "">>Configuration/Configuration.ini
384
echo "[Smtp]">>Configuration/Configuration.ini
385
echo "status" = "Disabled">>Configuration/Configuration.ini
386
echo "email = None">>Configuration/Configuration.ini
387
echo "password = None">>Configuration/Configuration.ini
388
echo "destination = None">>Configuration/Configuration.ini
389
echo "server= None">>Configuration/Configuration.ini
390
echo "port= None">>Configuration/Configuration.ini
391
echo "">>Configuration/Configuration.ini
392
echo "[Settings]">>Configuration/Configuration.ini
393
echo "password = Holmes">>Configuration/Configuration.ini
394
echo "api_key = None">>Configuration/Configuration.ini
395
echo "proxy_list" = "Proxies/Proxy_list.txt">>Configuration/Configuration.ini
396
echo "useragent_list" = "Useragents/Useragent.txt">>Configuration/Configuration.ini
397
echo "show_logs = False">>Configuration/Configuration.ini
398
echo "database"= "False">>Configuration/Configuration.ini
399
echo "language"= "english">>Configuration/Configuration.ini
400
echo "date_format"= "eu">>Configuration/Configuration.ini
401
rm Configuration/UNTILED.txt &> /dev/null
402
printf "\n\n${WHITE}EMAIL-SERVER:${GREEN}DISABLED\n"
403
printf "\n${WHITE}SHOW-LOGS:${GREEN}FALSE\n"
404
printf "\n${WHITE}UPDATE-PASSWORD:${GREEN}Holmes\n"
405
printf "\n${WHITE}API-KEY:${GREEN}None\n"
406
printf "\n${WHITE}PROXIES:${GREEN}DEFAULT\n"
407
printf "\n${WHITE}USERAGENTS:${GREEN}DEFAULT\n"
408
printf "\n${WHITE}CLI-LANGUAGE:${GREEN}ENGLISH\n"
409
printf "\n${WHITE}GUI-LANGUAGE:${GREEN}ENGLISH\n"
410
printf "\n${WHITE}GUI-THEME:${GREEN}LIGHT\n"
411
printf "\n${WHITE}DATE-FORMAT:${GREEN}EUROPE(EU)"
412
}
413
414
function installer {
415
banner
416
printf "${BLUE}\n\nCHECKING LINUX DISTRIBUTION..."
417
sleep 2
418
Fold=${PWD##*/}
419
printf "${GREEN}\n\n[+]${WHITE}LINUX DISTRIBUTION FOUND:$DIST${GREEN}[+]"
420
printf "${BLUE}\n\nWELCOME TO THE INSTALLATION MANAGER WOULD YOU LIKE TO BEGIN(1)YES(2)NO\n\n"
421
read -p "$GREEN[#MR.HOLMES#]$WHITE-->" confvar
422
while [ "$confvar" == "" ];
423
do
424
printf "${BLUE}\n\nWELCOME TO THE INSTALLATION MANAGER WOULD YOU LIKE TO BEGIN(1)YES(2)NO\n\n"
425
read -p "$GREEN[#MR.HOLMES#]$WHITE-->" confvar
426
done
427
if [ $confvar == 1 ];
428
then
429
printf "${BLUE}\nWOULD YOU LIKE TO SET(1)MANUAL-INSTALLATION(2)AUTO-INSTALLATION\n\n"
430
read -p "$GREEN[#MR.HOLMES#]$WHITE-->" selected
431
while [ "$selected" == "" ];
432
do
433
printf "${BLUE}\n\nWOULD YOU LIKE TO SET(1)MANUAL-INSTALLATION(2)AUTO-INSTALLATION\n\n"
434
read -p "$GREEN[#MR.HOLMES#]$WHITE-->" selected
435
done
436
if [ $selected == 1 ];
437
then
438
Packet_Installer
439
Mail_Options
440
Options
441
cd ../
442
443
elif [ $selected == 2 ];
444
then
445
AutoInstaller
446
fi
447
cd Core
448
printf "${WHITE}\n\nGIVING PERMISSION TO LUNCH FOR CORE FILES"
449
sudo chmod +x update.sh
450
cd ../
451
cd Launchers
452
sudo chmod +x Launcher.sh
453
cd ../
454
cd ../
455
echo "path = `pwd`">>$Fold/Configuration/Configuration.ini
456
sleep 2
457
printf "\n\nSETTING CLI INTERFACE..."
458
echo "Desktop">$Fold/Display/Display.txt
459
sleep 2
460
printf "${GREEN}\n\n[+]${WHITE}PROGRAM INSTALLED CORRECTLY${GREEN}[+]"
461
printf "${LIGHTGREEN}\n\nTHANK YOU FOR HAVE INSTALLED Mr.Holmes\n\n"
462
exit 0
463
fi
464
printf "\n${BLUE}INSTALLATION INTERRUPTED EXIT...\n\n"
465
exit 1
466
}
467
Check_Root
468
469