gnunet: improve init script
authorDaniel Golle <daniel@makrotopia.org>
Tue, 15 Mar 2022 18:32:32 +0000 (18:32 +0000)
committerDaniel Golle <daniel@makrotopia.org>
Tue, 15 Mar 2022 18:33:37 +0000 (18:33 +0000)
Ensure correct ownership of /etc/gnunet.
Quote variables and more or less make shellcheck happy.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
net/gnunet/files/gnunet.init

index 84011686217191a760ae88a28f9bb8778eda3e0a..8cf3e159966afb06c82c7aa332a260c0b24d6ea6 100755 (executable)
@@ -13,44 +13,41 @@ CONFIGFILE=$GNUNET_HOME/gnunet.conf
 extra_command "restart_transport" "Restart transport"
 
 prepare_config() {
-       local had_exit_service=0;
+       local had_exit_service=0
 
        if [ ! -e "$GNUNET_HOME" ]; then
-               mkdir -p $GNUNET_HOME
-               chown gnunet:gnunet $GNUNET_HOME
-               chmod 0750 $GNUNET_HOME
+               mkdir -m 0750 -p "$GNUNET_HOME"
+               chown gnunet:gnunet "$GNUNET_HOME"
        fi
-       touch $CONFIGFILE
-       chown gnunet:gnunet $CONFIGFILE
-       chmod 0640 $CONFIGFILE
-       gnunet-config -c $CONFIGFILE -s PATHS -o GNUNET_HOME -V $GNUNET_HOME
+       touch "$CONFIGFILE"
+       chown gnunet:gnunet "$CONFIGFILE"
+       chmod 0640 "$CONFIGFILE"
+       gnunet-config -c "$CONFIGFILE" -s PATHS -o GNUNET_HOME -V "$GNUNET_HOME"
 
        # minimal persistency in /etc/gnunet
-       [ ! -d /etc/gnunet ] && {
-               mkdir -p /etc/gnunet
-               chown gnunet:gnunet /etc/gnunet
-       }
+       [ ! -d /etc/gnunet ] && mkdir -m 0750 -p /etc/gnunet
+       chown gnunet:gnunet /etc/gnunet
 
        # defaults paths for persistent files
-       gnunet-config -c $CONFIGFILE -s PATHS -o GNUNET_CONFIG_HOME -V /etc/gnunet
-       gnunet-config -c $CONFIGFILE -s PEER -o PRIVATE_KEY -V /etc/gnunet/private_key.ecc
-       gnunet-config -c $CONFIGFILE -s identity -o EGODIR -V /etc/gnunet/identity/egos
-       gnunet-config -c $CONFIGFILE -s revocation -o DATABASE -V /etc/gnunet/revocation.dat
-       gnunet-config -c $CONFIGFILE -s nse -o PROOFFILE -V /etc/gnunet/proof.dat
+       gnunet-config -c "$CONFIGFILE" -s PATHS -o GNUNET_CONFIG_HOME -V /etc/gnunet
+       gnunet-config -c "$CONFIGFILE" -s PEER -o PRIVATE_KEY -V /etc/gnunet/private_key.ecc
+       gnunet-config -c "$CONFIGFILE" -s identity -o EGODIR -V /etc/gnunet/identity/egos
+       gnunet-config -c "$CONFIGFILE" -s revocation -o DATABASE -V /etc/gnunet/revocation.dat
+       gnunet-config -c "$CONFIGFILE" -s nse -o PROOFFILE -V /etc/gnunet/proof.dat
 
        # enable all installed transport plugins
-       transport_plugins=$(gnunet-config -c $CONFIGFILE -s transport -o PLUGINS)
+       transport_plugins=$(gnunet-config -c "$CONFIGFILE" -s transport -o PLUGINS)
        for transplug in /usr/lib/gnunet/libgnunet_plugin_transport_*.so; do
-               transplug=$( echo $transplug |
-                       sed -ne 's!^.*_transport_\(.*\)\.so$!\1!p' )
-               [ -n "$( echo $transport_plugins | grep $transplug )" ] ||
+               transplug="$( echo "$transplug" |
+                       sed -ne 's!^.*_transport_\(.*\)\.so$!\1!p' )"
+               echo "$transport_plugins" | grep -q "$transplug" ||
                        transport_plugins="$transport_plugins $transplug"
        done
-       gnunet-config -c $CONFIGFILE -s transport -o PLUGINS -V "$transport_plugins"
+       gnunet-config -c "$CONFIGFILE" -s transport -o PLUGINS -V "$transport_plugins"
 
        # do not touch sysctl, iptables and routing
-       gnunet-config -c $CONFIGFILE -s dns -o SKIP_ROUTING_SETUP -V YES
-       gnunet-config -c $CONFIGFILE -s exit -o EXIT_IFNAME -V ''
+       gnunet-config -c "$CONFIGFILE" -s dns -o SKIP_ROUTING_SETUP -V YES
+       gnunet-config -c "$CONFIGFILE" -s exit -o EXIT_IFNAME -V ''
 
        # apply config from UCI
        _gnunet_section=""
@@ -71,19 +68,19 @@ prepare_config() {
                # $2    value
                local __OPT="$1"
                local __VAL="$2"
-               gnunet-config -c $CONFIGFILE -s ${_gnunet_section} -o ${__OPT} -V "${__VAL}"
+               gnunet-config -c "$CONFIGFILE" -s "${_gnunet_section}" -o "${__OPT}" -V "${__VAL}"
        }
 
        config_load gnunet
 
-       [ "$had_exit_service" -eq 1 ] && gnunet-config -c $CONFIGFILE -s exit -o FORCESTART -V YES
+       [ "$had_exit_service" -eq 1 ] && gnunet-config -c "$CONFIGFILE" -s exit -o FORCESTART -V YES
 
        return 0
 }
 
 restart_transport() {
-       gnunet-arm -c $CONFIGFILE -k transport
-       gnunet-arm -c $CONFIGFILE -i transport
+       gnunet-arm -c "$CONFIGFILE" -k transport
+       gnunet-arm -c "$CONFIGFILE" -i transport
 }
 
 start_service() {
@@ -93,8 +90,8 @@ start_service() {
        procd_set_param user gnunet
 #      procd_set_param env GNUNET_LOG="dht;;;;info"
        procd_set_param stderr 1
-       procd_set_param command $PROG -c $CONFIGFILE
-       [ "$LOGFILE" ] && procd_append_param command -l $LOGFILE
+       procd_set_param command "$PROG" -c "$CONFIGFILE"
+       [ "$LOGFILE" ] && procd_append_param command -l "$LOGFILE"
        procd_set_param respawn
        procd_close_instance
 }