From f671503c342fc1ca385551e86219d78ee18e8c45 Mon Sep 17 00:00:00 2001 From: Alexandre Date: Sun, 31 Oct 2021 11:36:15 +0100 Subject: [PATCH] Functional code --- transmission/rootfs/etc/cont-init.d/20-config | 87 +++++++++---------- 1 file changed, 43 insertions(+), 44 deletions(-) diff --git a/transmission/rootfs/etc/cont-init.d/20-config b/transmission/rootfs/etc/cont-init.d/20-config index b56677078..0882e6710 100644 --- a/transmission/rootfs/etc/cont-init.d/20-config +++ b/transmission/rootfs/etc/cont-init.d/20-config @@ -9,17 +9,19 @@ declare PASS declare WHITELIST declare HOST_WHITELIST +CONFIGDIR="/config/transmission" + ############### # PERMISSIONS # ############### #Default folders -echo "Updating folders" -mkdir -p /config/transmission || true +echo "Updating folders" +mkdir -p /config/transmission || true chown -R abc:abc /config/transmission || true -if ! bashio::fs.file_exists '/config/transmission/settings.json'; then - echo "Creating default config" - cp "/defaults/settings.json" "/config/transmission/settings.json" +if ! bashio::fs.file_exists "$CONFIGDIR/settings.json"; then + echo "Creating default config" + cp "/defaults/settings.json" "$CONFIGDIR/settings.json" fi ################ @@ -35,91 +37,88 @@ if bashio::config.has_value 'customUI'; then mv /$CUSTOMUI /flood-for-transmission fi fi -bashio::log.info "UI selected : $CUSTOMUI" +bashio::log.info "UI selected : $CUSTOMUI" ################# # CONFIGURATION # ################# # Repair structure -jq . /config/transmission/settings.json | cat > temp.json && mv temp.json /config/transmission/settings.json +################ +jq . -S $CONFIGDIR/settings.json | cat >temp.json && mv temp.json $CONFIGDIR/settings.json +echo "Making sure settings.json structure is good" +for KEYS in "incomplete-dir" "download-dir" "rpc-host-whitelist-enabled" "rpc-authentication-required" "rpc-username" "rpc-password" "rpc-whitelist-enabled" "rpc-whitelist"; do + KEYSTHERE=$(jq "has(\"${KEYS}\")" $CONFIGDIR/settings.json) + [ $KEYSTHERE != true ] && sed -i "3 i\"${KEYS}\": null," $CONFIGDIR/settings.json + echo "... $KEYS was missing, added" +done +jq . -S $CONFIGDIR/settings.json | cat >temp.json && mv temp.json $CONFIGDIR/settings.json # INCOMPLETE DIR ################ -echo "Creating config" +echo "Creating config" download_dir=$(bashio::config 'download_dir') incomplete_dir=$(bashio::config 'incomplete_dir') -CONFIG=$( 2, to allow both null and '', set it as existing if [ ${#incomplete_dir} -ge 2 ]; then - echo "Incomplete dir set: $incomplete_dir" - CONFIG=$(bashio::jq "${CONFIG}" ".\"incomplete-dir-enabled\"=true") - mkdir -p $incomplete_dir - chown abc:abc $incomplete_dir + echo "Incomplete dir set: $incomplete_dir" + CONFIG=$(bashio::jq "${CONFIG}" ".\"incomplete-dir-enabled\"=true") + mkdir -p $incomplete_dir + chown abc:abc $incomplete_dir else - echo "Incomplete dir disabled" - CONFIG=$(bashio::jq "${CONFIG}" ".\"incomplete-dir-enabled\"=false") + echo "Incomplete dir disabled" + CONFIG=$(bashio::jq "${CONFIG}" ".\"incomplete-dir-enabled\"=false") fi # Defaults CONFIG=$(bashio::jq "${CONFIG}" ".\"incomplete-dir\"=\"${incomplete_dir}\"") CONFIG=$(bashio::jq "${CONFIG}" ".\"download-dir\"=\"${download_dir}\"") -CONFIG=$(bashio::jq "${CONFIG}" ".\"rpc-whitelist-enabled\"=false") CONFIG=$(bashio::jq "${CONFIG}" ".\"rpc-host-whitelist-enabled\"=false") CONFIG=$(bashio::jq "${CONFIG}" ".\"bind-address-ipv4\"=\"0.0.0.0\"") -echo "${CONFIG}" > /config/transmission/settings.json -jq . /config/transmission/settings.json | cat > temp.json && mv temp.json /config/transmission/settings.json +echo "${CONFIG}" >$CONFIGDIR/settings.json && + jq . -S $CONFIGDIR/settings.json | cat >temp.json && mv temp.json $CONFIGDIR/settings.json # USER and PASS ############### -CONFIG=$( /config/transmission/settings.json -jq . /config/transmission/settings.json | cat > temp.json && mv temp.json /config/transmission/settings.json +CONFIG=$(bashio::jq "${CONFIG}" ".\"rpc-authentication-required\"=${BOOLEAN}") +CONFIG=$(bashio::jq "${CONFIG}" ".\"rpc-username\"=\"${USER}\"") +CONFIG=$(bashio::jq "${CONFIG}" ".\"rpc-username\"=\"${PASS}\"") +echo "${CONFIG}" >$CONFIGDIR/settings.json && + jq . -S $CONFIGDIR/settings.json | cat >temp.json && mv temp.json $CONFIGDIR/settings.json # WHITELIST ########### -CONFIG=$( /config/transmission/settings.json -jq . /config/transmission/settings.json | cat > temp.json && mv temp.json /config/transmission/settings.json - -#if [ ! -z "$HOST_WHITELIST" ]; then -# sed -i '/rpc-host-whitelist-enabled/c\ "rpc-host-whitelist-enabled": true,' /config/transmission/settings.json -# sed -i "/\"rpc-host-whitelist\"/c\ \"rpc-host-whitelist\": \"$HOST_WHITELIST\"," /config/transmission/settings.json -#else -# sed -i '/rpc-host-whitelist-enabled/c\ "rpc-host-whitelist-enabled": false,' /config/transmission/settings.json -# sed -i "/\"rpc-host-whitelist\"/c\ \"rpc-host-whitelist\": \"$HOST_WHITELIST\"," /config/transmission/settings.json -#fi - -echo "${CONFIG}" > /config/transmission/settings.json +CONFIG=$(bashio::jq "${CONFIG}" ".\"rpc-whitelist-enabled\"=${BOOLEAN}") +CONFIG=$(bashio::jq "${CONFIG}" ".\"rpc-whitelist\"=\"$WHITELIST\"") +echo "${CONFIG}" >$CONFIGDIR/settings.json && + jq . -S $CONFIGDIR/settings.json | cat >temp.json && mv temp.json $CONFIGDIR/settings.json