1
+ #! /usr/bin/env bash
2
+ # Runs the Updater.jar plugin and processes any pending updates
3
+ set -x
4
+ # First Run:
5
+ # updateBiglyBT [-Dproperty=val ...] -Dazureus.script.version="X" <mainClass> <"updateonly"|"restart"> <appPath> <userPath> <configOverride>
6
+ # Second Run if sudo was needed:
7
+ # updateBiglyBT "rerun" <originalUser> $@
8
+
9
+ exists () {
10
+ type " $1 " > /dev/null 2> /dev/null
11
+ }
12
+
13
+ if [ " $1 " = " rerun" ]; then
14
+ ISRERUN=1
15
+ else
16
+ ISRERUN=0
17
+ fi
18
+
19
+ if [ $ISRERUN -eq 1 ]; then
20
+ PARAMS=( " ${@: 3} " )
21
+ else
22
+ SCRIPT=` realpath $0 `
23
+ SCRIPTPATH=` dirname $SCRIPT `
24
+
25
+ if [ " $1 " = " " ]; then
26
+ # No params were passed in, make ones up
27
+ PARAMS=( " com.biglybt.update.Updater" " updateonly" " ${SCRIPTPATH} " " ${HOME} /.biglybt" )
28
+ else
29
+ PARAMS=( " ${@ } " )
30
+ fi
31
+
32
+ for i in " ${! PARAMS[@]} " ; do
33
+ if [ " ${PARAMS[$i]} " = " updateonly" ] || [ " ${PARAMS[$i]} " = " restart" ]; then
34
+ PARAM_IDX_APPPATH=$(( $i + 1 ))
35
+ break
36
+ fi
37
+ done
38
+
39
+ if [ ! -w " ${PARAMS[${PARAM_IDX_APPPATH}]} " ]; then
40
+ # Can't write to appdir, going to need super user
41
+
42
+ if [ " $EUID " -ne 0 ]; then
43
+ if exists " pkexec" ; then
44
+ CMD=" pkexec"
45
+ elif exists " gksudo" ; then
46
+ CMD=" gksudo"
47
+ elif exists " kdesudo" ; then
48
+ CMD=" kdesudo"
49
+ elif exists " sudo" ; then
50
+ CMD=" sudo"
51
+ else
52
+ echo " Can't get write access to ${PARAMS[${PARAM_IDX_APPPATH}]} "
53
+ echo " Please run ${SCRIPT} with higher access level"
54
+ exit 1
55
+ fi
56
+
57
+ echo Running as root..
58
+ $CMD $SCRIPT " rerun" " ${USER} " ${PARAMS[@]}
59
+ if [ $? -ne 0 ]; then
60
+ echo " Could not run with ${CMD} . Trying one more time with sudo"
61
+ sudo $SCRIPT " rerun" " ${USER} " ${PARAMS[@]}
62
+ fi
63
+ exit
64
+ fi
65
+
66
+ fi
67
+
68
+ fi
69
+
70
+ for i in " ${! PARAMS[@]} " ; do
71
+ if [ " ${PARAMS[$i]} " = " updateonly" ] || [ " ${PARAMS[$i]} " = " restart" ]; then
72
+ PARAM_IDX_USERPATH=$(( $i + 2 ))
73
+ break
74
+ fi
75
+ done
76
+
77
+ echo Running Updater..
78
+ java -cp " ${PARAMS[${PARAM_IDX_USERPATH}]} /plugins/azupdater/Updater.jar" ${PARAMS[@]}
79
+
80
+ if [ $ISRERUN -eq 1 ]; then
81
+ echo Ensuring $2 still owns ${PARAMS[${PARAM_IDX_USERPATH}]}
82
+ chown -R $2 :$2 ${PARAMS[${PARAM_IDX_USERPATH}]}
83
+ fi
84
+
85
+ echo Done
0 commit comments