Skip to content

Commit

Permalink
read download/incomplete directories from settings.json
Browse files Browse the repository at this point in the history
- prevents automatic creation of unused directories
- if `settings.json` contains `download-dir`/`incomplete-dir` properties, read the values and use them for `mkdir`/`lsiown` commands on container start
  • Loading branch information
cartfisk committed Mar 8, 2024
1 parent 2b98bc1 commit 7c9cc02
Showing 1 changed file with 27 additions and 10 deletions.
37 changes: 27 additions & 10 deletions root/etc/s6-overlay/s6-rc.d/init-transmission-config/run
Original file line number Diff line number Diff line change
@@ -1,15 +1,32 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash

# make folders
mkdir -p \
/downloads/{complete,incomplete} /watch
SETTINGS=/config/settings.json

# copy config
if [[ ! -f /config/settings.json ]]; then
cp /defaults/settings.json /config/settings.json
if [[ ! -f $SETTINGS ]]; then
cp /defaults/settings.json $SETTINGS
fi

# Default values
DOWNLOAD_DIR="/downloads/complete"
INCOMPLETE_DIR="/downloads/incomplete"

# Check `settings.json` for custom download/incomplete directories
settings_download_dir=$(grep -o '"download-dir": "[^"]*' "$SETTINGS" | sed 's/"download-dir": "//')
if [ ! -z "$settings_download_dir" ]; then
DOWNLOAD_DIR="$settings_download_dir"
fi
settings_incomplete_dir=$(grep -o '"incomplete-dir": "[^"]*' "$SETTINGS" | sed 's/"incomplete-dir": "//')
if [ ! -z "$settings_incomplete_dir" ]; then
INCOMPLETE_DIR="$settings_incomplete_dir"
fi

# make folders
mkdir -p $DOWNLOAD_DIR
mkdir -p $INCOMPLETE_DIR
mkdir -p /watch

if [[ -n "$USER" ]] && [[ -n "$PASS" ]]; then
sed -i '/rpc-authentication-required/c\ "rpc-authentication-required": true,' /config/settings.json
sed -i "/rpc-username/c\ \"rpc-username\": \"$USER\"," /config/settings.json
Expand Down Expand Up @@ -49,16 +66,16 @@ echo /transmissionic /combustion-release /flood-for-transmission /kettu /transmi
lsiown abc:abc \
/config/settings.json

if [[ "$(stat -c '%U' /downloads)" != "abc" ]]; then
if [[ -d /downloads && "$(stat -c '%U' /downloads)" != "abc" ]]; then
lsiown abc:abc /downloads
fi

if [[ "$(stat -c '%U' /downloads/complete)" != "abc" ]]; then
lsiown abc:abc /downloads/complete
if [[ "$(stat -c '%U' $DOWNLOAD_DIR)" != "abc" ]]; then
lsiown abc:abc $DOWNLOAD_DIR
fi

if [[ "$(stat -c '%U' /downloads/incomplete)" != "abc" ]]; then
lsiown abc:abc /downloads/incomplete
if [[ "$(stat -c '%U' $INCOMPLETE_DIR)" != "abc" ]]; then
lsiown abc:abc $INCOMPLETE_DIR
fi

if [[ "$(stat -c '%U' /watch)" != "abc" ]]; then
Expand Down

0 comments on commit 7c9cc02

Please sign in to comment.