Properly escape variables in scripts
Andrej Shadura
3 years ago
64 | 64 | $PYTHON -m "synapse.app.homeserver" $CONFIGS --generate-keys || return 2 |
65 | 65 | fi |
66 | 66 | # Make sure the key file is owned by the user running synapse |
67 | chown $USER:nogroup $KEYFILE | |
68 | chmod 0600 $KEYFILE | |
67 | chown $USER:nogroup "$KEYFILE" | |
68 | chmod 0600 "$KEYFILE" | |
69 | 69 | |
70 | 70 | # Return |
71 | 71 | # 0 if daemon has been started |
73 | 73 | # 2 if daemon could not be started |
74 | 74 | PIDFILE=$(get_config_key pid_file) |
75 | 75 | RETVAL=$? |
76 | if [ "$RETVAL" != 0 ]; then | |
76 | if [ "$RETVAL" != 0 ] | |
77 | then | |
77 | 78 | return $RETVAL |
78 | 79 | fi |
79 | if [ -r "$PIDFILE" ]; then | |
80 | kill -0 $(cat $PIDFILE) 2>/dev/null && return 1 | |
80 | if [ -r "$PIDFILE" ] | |
81 | then | |
82 | kill -0 $(cat "$PIDFILE") 2>/dev/null && return 1 | |
81 | 83 | fi |
82 | 84 | |
83 | 85 | export PYTHONPATH |
84 | 86 | |
85 | 87 | # Create the PID file so that synapse can write to it as nonroot |
86 | touch $PIDFILE | |
87 | chown $USER:nogroup $PIDFILE | |
88 | chown $USER:nogroup $SHAREDIR/media/ | |
88 | touch "$PIDFILE" | |
89 | chown $USER:nogroup "$PIDFILE" | |
90 | chown $USER:nogroup "$SHAREDIR/media/" | |
89 | 91 | mkdir -p "$SHAREDIR/uploads" |
90 | chown $USER:nogroup $SHAREDIR/uploads/ | |
91 | ||
92 | start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE --chuid $USER \ | |
92 | chown $USER:nogroup "$SHAREDIR/uploads/" | |
93 | ||
94 | start-stop-daemon --start --background --make-pidfile --pidfile "$PIDFILE" --chuid "$USER" \ | |
93 | 95 | --exec $PYTHON -- -m "synapse.app.homeserver" $CONFIGS || return 2 |
94 | 96 | |
95 | 97 | return 0 |
107 | 109 | # other if a failure occurred |
108 | 110 | PIDFILE=$(get_config_key pid_file) |
109 | 111 | RETVAL=$? |
110 | if [ "$RETVAL" != 0 ]; then | |
112 | if [ "$RETVAL" != 0 ] | |
113 | then | |
111 | 114 | return $RETVAL |
112 | 115 | fi |
113 | 116 | |
114 | start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --user $USER | |
117 | start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile "$PIDFILE" --user "$USER" | |
115 | 118 | RETVAL="$?" |
116 | 119 | [ "$RETVAL" = 2 ] && return 2 |
117 | 120 | |
118 | 121 | # Many daemons don't delete their pidfiles when they exit. |
119 | rm -f $PIDFILE | |
122 | rm -f "$PIDFILE" | |
120 | 123 | return "$RETVAL" |
121 | 124 | } |
122 | 125 |
10 | 10 | case "$1" in |
11 | 11 | configure|reconfigure) |
12 | 12 | # Set server name in config file |
13 | mkdir -p "/etc/matrix-synapse/conf.d/" | |
13 | mkdir -p /etc/matrix-synapse/conf.d | |
14 | 14 | db_get matrix-synapse/server-name |
15 | 15 | |
16 | if [ "$RET" ]; then | |
17 | echo "server_name: $RET" > $CONFIGFILE_SERVERNAME | |
16 | if [ "$RET" ] | |
17 | then | |
18 | echo "server_name: $RET" > "$CONFIGFILE_SERVERNAME" | |
18 | 19 | fi |
19 | 20 | |
20 | 21 | db_get matrix-synapse/report-stats |
21 | if [ "$RET" ]; then | |
22 | echo "report_stats: $RET" > $CONFIGFILE_REPORTSTATS | |
22 | if [ "$RET" ] | |
23 | then | |
24 | echo "report_stats: $RET" > "$CONFIGFILE_REPORTSTATS" | |
23 | 25 | fi |
24 | 26 | |
25 | if ! getent passwd $USER >/dev/null; then | |
26 | adduser --quiet --system --no-create-home --home /var/lib/matrix-synapse $USER | |
27 | if ! getent passwd "$USER" >/dev/null | |
28 | then | |
29 | adduser --quiet --system --no-create-home --home /var/lib/matrix-synapse "$USER" | |
27 | 30 | fi |
28 | 31 | |
29 | for DIR in /var/lib/matrix-synapse /var/log/matrix-synapse /etc/matrix-synapse; do | |
30 | if ! dpkg-statoverride --list --quiet $DIR >/dev/null; then | |
31 | dpkg-statoverride --force-all --quiet --update --add $USER nogroup 0755 $DIR | |
32 | for DIR in /var/lib/matrix-synapse /var/log/matrix-synapse /etc/matrix-synapse | |
33 | do | |
34 | if ! dpkg-statoverride --list --quiet "$DIR" >/dev/null | |
35 | then | |
36 | dpkg-statoverride --force-all --quiet --update --add "$USER" nogroup 0755 "$DIR" | |
32 | 37 | fi |
33 | 38 | done |
34 | 39 |
7 | 7 | |
8 | 8 | if [ "$1" = "purge" ] |
9 | 9 | then |
10 | rm -f $CONFIGFILE_SERVERNAME $CONFIGFILE_REPORTSTATS | |
11 | if [ -d $CONFIG_DIR ] | |
10 | rm -f "$CONFIGFILE_SERVERNAME" "$CONFIGFILE_REPORTSTATS" | |
11 | if [ -d "$CONFIG_DIR" ] | |
12 | 12 | then |
13 | rmdir --ignore-fail-on-non-empty $CONFIG_DIR | |
13 | rmdir --ignore-fail-on-non-empty "$CONFIG_DIR" | |
14 | 14 | fi |
15 | 15 | |
16 | 16 | for DIR in /var/lib/matrix-synapse /var/log/matrix-synapse /etc/matrix-synapse; do |