# not worth separating out.
# between comps, the uid can change
-f=$tdir/transmission-daemon
-for d in $tdir/partial-torrents $tdir/torrents $f; do
+tconf_dir=$tdir/.config/transmission-daemon
+
+case $HOSTNAME in
+ $d_host)
+ # to persist upload/dl metadata. initially, moved all the stuff
+ # in /var/lib/transmission-daemon to /d/tor
+
+ transmission_home=$(eval echo ~debian-transmission)
+ if [[ $transmission_home != /d/tor ]]; then
+ if ser is-active transmission-daemon-nn &>/dev/null; then
+ ser stop transmission-daemon-nn
+ fi
+ s usermod --home /d/tor debian-transmission
+ fi
+ ;;
+ *)
+ # set to the default
+ s usermod --home /var/lib/transmission-daemon debian-transmission
+ s lnf -T $tconf_dir /var/lib/transmission-daemon/.config/transmission-daemon
+ sudo chown -R debian-transmission:debian-transmission /var/lib/transmission-daemon
+ ;;
+esac
+
+for d in $tdir/partial-torrents $tdir/torrents $tconf_dir; do
if [[ ! -d $d ]]; then
sudo mkdir -p $d
fi
sudo chown -R debian-transmission:user2 $d
done
-s lnf -T $f /var/lib/transmission-daemon/.config/transmission-daemon
-s lnf -T /etc/transmission-daemon/settings.json $f/settings.json
-sudo chown -R debian-transmission:debian-transmission $f
-sudo chown -R debian-transmission:debian-transmission /var/lib/transmission-daemon
-#
+
+# /etc/transmission-daemon/README.json:
+#Currently transmission overwrites the settings.json configuration file
+# on exit. The daemon can be instructed to reload the config with a SIGHUP,
+# or
+# # invoke-rc.d transmission-daemon reload
+
+# Otherwise changes made manually to the file while the daemon is running
+# will be silently overwritten on exit.
+### end
+
# config file documented here, and it\'s the same config
# for daemon vs non-daemon, so it\'s documented in the gui.
# https://trac.transmissionbt.com/wiki/EditConfigFiles#Options
# It is a read & write cache.
#
# just fyi: default rpc port is 9091
-d_host_suffix=$(awk '$2 == "'$d_host'" {print $1}' /p/c/host-info)
-u ~/.config/transmission-daemon-iank.rb <<EOF
+
+tr-config-daemon() {
+ d_host_suffix=$(awk '$2 == "'$d_host'" {print $1}' /p/c/host-info)
+ u ~/.config/transmission-daemon-iank.rb <<EOF
require 'json'
-p = '/etc/transmission-daemon/settings.json'
+p = '$tconf_dir/settings.json'
s = {
+ 'rpc-whitelist' => '',
'rpc-whitelist-enabled' => false,
'rpc-host-whitelist-enabled' => false,
'rpc-authentication-required' => true,
"cache-size-mb" => 256,
"ratio-limit" => 5.0,
"ratio-limit-enabled" => false,
+ "rpc-username" => "transmission",
+ "rpc-url" => "/transmission/",
"umask" => "002",
$(if [[ -e /p/transmission-rpc-pass ]]; then echo '"rpc-password" => File.read("/p/transmission-rpc-pass").chomp,'; fi)
}
puts(JSON.pretty_generate(JSON.parse(File.read(p)).merge(s)))
EOF
-# shellcheck disable=SC2154 # false positive
-if $ur || ! sudo test -s /etc/transmission-daemon/settings.json; then
- restart_ser=false
- ser=transmission-daemon-nn
- if ser is-active $ser &>/dev/null; then
- m ser stop $ser
- restart_ser=true
- fi
+
tmpf=$(mktemp)
# shellcheck disable=SC2024 # false positive
- if sudo ruby <~/.config/transmission-daemon-iank.rb >$tmpf; then
- sudo dd of=/etc/transmission-daemon/settings.json <$tmpf
- else
+ if ! sudo ruby <~/.config/transmission-daemon-iank.rb >$tmpf; then
echo "iank ruby transmission error" >&2
- exit 1
+ return 1
fi
- if $restart_ser; then
- m ser start $ser
- fi
-fi
-####### end transmission
+ # shellcheck disable=SC2154 # false positive
+ if ! sudo diff -q $tmpf $tconf_dir/settings.json &>/dev/null; then
+ restart_ser=false
+ ser=transmission-daemon-nn
+ if ser is-active $ser &>/dev/null; then
+ m ser stop $ser
+ restart_ser=true
+ fi
+ sudo dd of=$tconf_dir/settings.json <$tmpf 2>/dev/null
+ if $restart_ser; then
+ m ser start $ser
+ fi
+ fi
+}
+tr-config-daemon
case $HOSTNAME in
$d_host)
- # to persist upload/dl metadata. initially, moved all the stuff
- # in /var/lib/transmission-daemon to /d/tor
-
- transmission_home=$(eval echo ~debian-transmission)
- if [[ $transmission_home != /d/tor ]]; then
- if ser is-active transmission-daemon-nn &>/dev/null; then
- ser stop transmission-daemon-nn
- fi
- s usermod --home /d/tor debian-transmission
- fi
sgo transmission-daemon-nn
- ;;
- *)
- # set to the default
- s usermod --home /var/lib/transmission-daemon debian-transmission
- ;;
-esac
+;;
+ esac
+####### end transmission
######### begin transmission client setup ######