2
2
# Copyright (c) 2023 rM-self-serve
3
3
# SPDX-License-Identifier: MIT
4
4
5
- webinterface_onboot_version=' v1.2.0 '
5
+ webinterface_onboot_version=' v1.2.1 '
6
6
7
7
main () {
8
8
# collect options before or after command
9
9
no_prompt=false
10
- if nop_match " $1 " ; then
11
- no_prompt=true
12
- shift
13
- fi
14
- cmd=(" $1 " )
15
- if [[ " $2 " != " " ]]; then
16
- shift
17
- if [ " $no_prompt " == false ] && nop_match " $1 " ; then
10
+ revert_backup=false
11
+ revert_reverse=false
12
+ cmd=()
13
+ for value in " $@ " ; do
14
+ case $value in
15
+ ' -y' | ' --no-prompt' )
18
16
no_prompt=true
19
- shift
20
- fi
21
- cmd+=(" $@ " )
22
- fi
17
+ ;;
18
+ ' -b' | ' --backup' )
19
+ revert_backup=true
20
+ ;;
21
+ ' -r' | ' --reverse' )
22
+ revert_reverse=true
23
+ ;;
24
+ * )
25
+ cmd+=(" $value " )
26
+ ;;
27
+ esac
28
+ done
23
29
24
30
case ${cmd[@]} in
25
31
' -h' | ' --help' | ' ' )
@@ -32,62 +38,30 @@ main() {
32
38
run
33
39
;;
34
40
' apply-hack' )
35
- checkspace
36
41
apply_hack
37
42
;;
38
43
' revert-hack' )
39
- checkspace
40
44
revert_hack
41
45
;;
42
46
' apply-prstip' )
43
- checkspace
44
47
apply_prstip
45
48
;;
46
49
' revert-prstip' )
47
- checkspace
48
50
revert_prstip
49
51
;;
52
+ ' is-hack-applied' )
53
+ cli_hack_applied
54
+ ;;
55
+ ' is-prstip-applied' )
56
+ cli_prstip_applied
57
+ ;;
50
58
* )
51
59
echo ' input not recognized'
52
60
cli_info
53
61
;;
54
62
esac
55
63
}
56
64
57
- checkspace () {
58
- if ! _checkspace / 1; then
59
- (
60
- echo " Not enough space on /"
61
- echo " Try to free space by running: journalctl --vacuum-time=1m"
62
- echo " Or: systemctl restart xochitl"
63
- exit 10
64
- )
65
- exit 1
66
- fi
67
- if ! _checkspace /home 10; then
68
- (
69
- echo " Not enough space on /home"
70
- exit 10
71
- )
72
- exit 1
73
- fi
74
- }
75
-
76
- _checkspace () {
77
- part=$1
78
- needed=$2
79
- _available=$( df " $part " | tail -n1 | awk ' {print $4}' )
80
- available=$(( "$_available " / 1024 ))
81
- if [ $available -lt " $needed " ]; then
82
- echo " Less than ${needed} MB free, ${available} MB"
83
- return 1
84
- fi
85
- }
86
-
87
- nop_match () {
88
- [[ " $1 " == * " -y" * ]] || [[ " $1 " == * " --no-prompt" * ]]
89
- }
90
-
91
65
cli_info () {
92
66
echo -e " ${GREEN} webinterface-onboot ${webinterface_onboot_version}${NC} "
93
67
echo ' '
@@ -108,16 +82,18 @@ cli_info() {
108
82
echo ' webinterface-onboot [COMMANDS] [OPTIONS]'
109
83
echo ' '
110
84
echo -e " ${CYAN} COMMANDS:${NC} "
111
- echo ' apply-hack Apply webinterface-onboot hack for versions >= v2.15'
112
- echo ' revert-hack Revert webinterface-onboot hack'
113
- echo ' apply-prstip Apply persist ip modification'
114
- echo ' revert-prstip Revert persist ip modification'
115
- echo ' local-exec Run webinterface-onboot in current shell'
85
+ echo ' apply-hack Apply webinterface-onboot hack'
86
+ echo ' revert-hack Revert webinterface-onboot hack'
87
+ echo ' apply-prstip Apply persist ip modification'
88
+ echo ' revert-prstip Revert persist ip modification'
89
+ echo ' is-hack-applied Return true or false'
90
+ echo ' is-prstip-applied Return true or false'
91
+ echo ' local-exec Run webinterface-onboot in current shell'
116
92
echo ' '
117
93
echo -e " ${CYAN} OPTIONS:${NC} "
118
- echo ' -s, --status Status of webinterface-onboot'
119
- echo ' -y, --no-prompt Do not prompt for confirmation'
120
- echo ' -h, --help Show help'
94
+ echo ' -s, --status Status of webinterface-onboot'
95
+ echo ' -y, --no-prompt Do not prompt for confirmation'
96
+ echo ' -h, --help Show help'
121
97
}
122
98
123
99
run_vars () {
@@ -268,6 +244,24 @@ status() {
268
244
fi
269
245
}
270
246
247
+ cli_hack_applied () {
248
+ help_vars
249
+ if ! hack_applied " $xo_file " ; then
250
+ echo " false"
251
+ exit 1
252
+ fi
253
+ echo " true"
254
+ }
255
+
256
+ cli_prstip_applied () {
257
+ vars_prstip
258
+ if ! is_action_moded " $prstip_content " ; then
259
+ echo " false"
260
+ exit 1
261
+ fi
262
+ echo " true"
263
+ }
264
+
271
265
hack_applied () {
272
266
strings " $1 " | grep usb | xargs | grep -q ' usbF usb0'
273
267
}
@@ -363,7 +357,6 @@ apply_hack() {
363
357
rm_temp
364
358
echo " "
365
359
echo " Success: webinterface-onboot hack applied"
366
- echo " Now run: systemctl restart xochitl"
367
360
exit 0
368
361
else
369
362
echo " Error: mv ${tmp_xo} -> ${xo_file} "
@@ -379,10 +372,25 @@ apply_hack() {
379
372
}
380
373
381
374
revert_hack () {
375
+ if [ " $revert_backup " == true ] && [ " $revert_reverse " == true ]; then
376
+ echo " Select either --backup or --reverse"
377
+ exit 1
378
+ fi
379
+ if [ " $no_prompt " == true ] && [ " $revert_backup " == false ] && [ " $revert_reverse " == false ]; then
380
+ echo " Select either --backup or --reverse"
381
+ exit 1
382
+ fi
383
+
382
384
echo " Revert webinterface-onboot hack"
383
385
echo " "
384
386
help_vars
385
- if [ " $is_hack_version " = true ]; then
387
+
388
+ if hack_possible " $xo_file " ; then
389
+ echo " Initial hack has not been applied to this file, nothing to revert"
390
+ exit 0
391
+ fi
392
+
393
+ if [ " $is_hack_version " == true ]; then
386
394
echo " Compatible xochitl version: v${xo_version} "
387
395
else
388
396
echo " Incompatible xochitl version: v${xo_version} "
@@ -392,32 +400,32 @@ revert_hack() {
392
400
echo " or by applying the hack in reverse order."
393
401
echo " "
394
402
395
- if hack_possible " $xo_file " ; then
396
- echo " Initial hack has not been applied to this file, nothing to revert"
397
- exit 0
398
- fi
399
- if [ " $no_prompt " = false ]; then
403
+ if [ " $revert_reverse " == false ]; then
400
404
if [ -f " $bak_xo " ]; then
401
405
echo " Backup file found: ${bak_xo} "
406
+ if [ " $no_prompt " == true ]; then
407
+ echo " Reverting from backup file"
408
+ revert_from_backup && exit 0 || exit 1
409
+ fi
410
+
402
411
read -r -p " Would you like to revert from backup file? [y/N] " response
403
412
case " $response " in
404
413
[yY][eE][sS] | [yY])
405
414
echo " Reverting from backup file"
406
- if revert_from_backup; then
407
- exit 0
408
- fi
415
+ revert_from_backup && exit 0
409
416
;;
410
417
* )
411
418
echo " Cancel revert from backup file"
412
419
;;
413
420
esac
414
421
else
415
422
echo " Can't find backup file ${bak_xo} "
416
- echo " Backup files can be at ${STORAGE_HOME} or ${STORAGE_OPT} "
423
+ [ " $revert_backup " == true ] && exit 1
417
424
fi
418
425
fi
419
426
420
- if [ " $no_prompt " = false ]; then
427
+ if [ " $no_prompt " == false ]; then
428
+ echo " "
421
429
read -r -p " Would you like to revert by reversing hack? [y/N] " response
422
430
case " $response " in
423
431
[yY][eE][sS] | [yY])
@@ -436,7 +444,6 @@ revert_from_backup() {
436
444
echo " "
437
445
if cp " $bak_xo " " $xo_file " ; then
438
446
echo " Success: Revert from backup file"
439
- echo " Now run: systemctl restart xochitl"
440
447
return 0
441
448
else
442
449
echo " Error: Revert from backup file"
@@ -493,7 +500,6 @@ hack_backwards() {
493
500
rm_temp
494
501
echo " "
495
502
echo " Success: webinterface-onboot hack reverted"
496
- echo " Now run: systemctl restart xochitl"
497
503
exit 0
498
504
else
499
505
echo " Error: mv ${tmp_xo} -> ${xo_file} "
@@ -530,7 +536,7 @@ apply_prstip() {
530
536
set -e
531
537
vars_prstip
532
538
533
- echo " Applying webint-upldbtn will edit: $prstip_file "
539
+ echo " Applying the persist ip modification will edit: $prstip_file "
534
540
echo ' And create a backup at:'
535
541
echo " $prstip_bak_file "
536
542
echo " "
0 commit comments