From d86c45d52aacfe794eed0a0a9ea6878add6c2c69 Mon Sep 17 00:00:00 2001 From: Jean-Francois Date: Wed, 28 Dec 2016 16:54:07 +0100 Subject: [PATCH 1/3] Add RPC Password Generates a RPC password and saves it as a setting. If no RPC password is present (previous versions), generates one and saves it as a setting as well. --- conf/settings.json | 2 +- scripts/install | 8 ++++++++ scripts/upgrade | 15 +++++++++++++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/conf/settings.json b/conf/settings.json index a5ce1dd..72b062b 100644 --- a/conf/settings.json +++ b/conf/settings.json @@ -45,7 +45,7 @@ "rpc-authentication-required": false, "rpc-bind-address": "127.0.0.1", "rpc-enabled": true, - "rpc-password": "{22ef1abe361f619946cf9ce68c442d27f73512d5lL3qJ6bY", + "rpc-password": "RPCPASSWORDTOCHANGE", "rpc-port": 9091, "rpc-url": "PATHTOCHANGE/transmission/", "rpc-username": "transmission", diff --git a/scripts/install b/scripts/install index 44d8c2d..0a19aa3 100644 --- a/scripts/install +++ b/scripts/install @@ -6,6 +6,9 @@ set -eu # Get app instance name app=$YNH_APP_INSTANCE_NAME +# Source app helpers +. /usr/share/yunohost/helpers + # Retrieve arguments domain=$YNH_APP_ARG_DOMAIN path=$YNH_APP_ARG_PATH @@ -41,7 +44,12 @@ sudo chown -R debian-transmission:debian-transmission /home/yunohost.transmissio sudo find /home/yunohost.transmission/ -type f | while read LINE; do sudo chmod 640 "$LINE" ; done sudo find /home/yunohost.transmission/ -type d | while read LINE; do sudo chmod 750 "$LINE" ; done +# Create RPC password +rpcpassword=$(ynh_string_random) +ynh_app_setting_set "$app" rpcpassword "$rpcpassword" + # Configure Transmission and reload +sed -i "s@RPCPASSWORDTOCHANGE@$rpcpassword@g" ../conf/settings.json sed -i "s@PATHTOCHANGE@$path@g" ../conf/settings.json sudo cp ../conf/settings.json /etc/transmission-daemon/settings.json sudo service transmission-daemon reload diff --git a/scripts/upgrade b/scripts/upgrade index 6f26b67..51131be 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -6,9 +6,13 @@ set -eu # Get app instance name app=$YNH_APP_INSTANCE_NAME +# Source app helpers +. /usr/share/yunohost/helpers + # Retrieve arguments -domain=$(sudo yunohost app setting "$app" domain) -path=$(sudo yunohost app setting "$app" path) +domain=$(ynh_app_setting_get "$app" domain) +path=$(ynh_app_setting_get "$app" path) +rpcpassword=$(ynh_app_setting_get "$app" rpcpassword) # Remove trailing "/" for next commands path=${path%/} @@ -26,7 +30,14 @@ sudo chown -R debian-transmission:debian-transmission /home/yunohost.transmissio sudo find /home/yunohost.transmission/ -type f | while read LINE; do sudo chmod 640 "$LINE" ; done sudo find /home/yunohost.transmission/ -type d | while read LINE; do sudo chmod 750 "$LINE" ; done +# Create RPC password if none exists +if [ -z "$rpcpassword" ]; then + rpcpassword=$(ynh_string_random) + ynh_app_setting_set "$app" rpcpassword "$rpcpassword" +fi + # Configure Transmission and reload +sed -i "s@RPCPASSWORDTOCHANGE@$rpcpassword@g" ../conf/settings.json sed -i "s@PATHTOCHANGE@$path@g" ../conf/settings.json sudo cp ../conf/settings.json /etc/transmission-daemon/settings.json sudo service transmission-daemon reload From 14fec9025c3209e9cbeac88b92b69fe25922485d Mon Sep 17 00:00:00 2001 From: Jean-Francois Date: Wed, 28 Dec 2016 17:23:48 +0100 Subject: [PATCH 2/3] Add watchdir Add watchdir with chmod 770. Saves the path in setting. --- conf/settings.json | 4 +++- scripts/install | 9 ++++++--- scripts/restore | 5 +++-- scripts/upgrade | 13 ++++++++++--- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/conf/settings.json b/conf/settings.json index 72b062b..36808fc 100644 --- a/conf/settings.json +++ b/conf/settings.json @@ -66,5 +66,7 @@ "upload-limit": 100, "upload-limit-enabled": 0, "upload-slots-per-torrent": 14, - "utp-enabled": true + "utp-enabled": true, + "watch-dir": "/home/yunohost.transmission/watched", + "watch-dir-enabled": true } diff --git a/scripts/install b/scripts/install index 0a19aa3..84e54d3 100644 --- a/scripts/install +++ b/scripts/install @@ -38,21 +38,24 @@ sudo yunohost firewall allow TCP 51413 > /dev/null 2>&1 sudo apt-get install transmission-daemon -y -qq # Make directories and set rights -sudo mkdir -p /home/yunohost.transmission/{progress,completed} +sudo mkdir -p /home/yunohost.transmission/{progress,completed,watched} sudo chown -R debian-transmission:www-data /home/yunohost.transmission/ -sudo chown -R debian-transmission:debian-transmission /home/yunohost.transmission/progress +sudo chown -R debian-transmission:debian-transmission /home/yunohost.transmission/progress /home/yunohost.transmission/watched sudo find /home/yunohost.transmission/ -type f | while read LINE; do sudo chmod 640 "$LINE" ; done sudo find /home/yunohost.transmission/ -type d | while read LINE; do sudo chmod 750 "$LINE" ; done +sudo find /home/yunohost.transmission/watched -type d | while read LINE; do sudo chmod 770 "$LINE" ; done +ynh_app_setting_set "$app" watchdir "/home/yunohost.transmission/watched" # Create RPC password rpcpassword=$(ynh_string_random) ynh_app_setting_set "$app" rpcpassword "$rpcpassword" # Configure Transmission and reload +sudo service transmission-daemon stop sed -i "s@RPCPASSWORDTOCHANGE@$rpcpassword@g" ../conf/settings.json sed -i "s@PATHTOCHANGE@$path@g" ../conf/settings.json sudo cp ../conf/settings.json /etc/transmission-daemon/settings.json -sudo service transmission-daemon reload +sudo service transmission-daemon start # Monitor service sudo yunohost service add transmission-daemon diff --git a/scripts/restore b/scripts/restore index a940637..e482564 100644 --- a/scripts/restore +++ b/scripts/restore @@ -53,11 +53,12 @@ sudo yunohost firewall allow TCP 51413 > /dev/null 2>&1 sudo apt-get install transmission-daemon -y -qq # Make directories and set rights -sudo mkdir -p /home/yunohost.transmission/{progress,completed} +sudo mkdir -p /home/yunohost.transmission/{progress,completed,watched} sudo chown -R debian-transmission:www-data /home/yunohost.transmission/ -sudo chown -R debian-transmission:debian-transmission /home/yunohost.transmission/progress +sudo chown -R debian-transmission:debian-transmission /home/yunohost.transmission/progress /home/yunohost.transmission/watched sudo find /home/yunohost.transmission/ -type f | while read LINE; do sudo chmod 640 "$LINE" ; done sudo find /home/yunohost.transmission/ -type d | while read LINE; do sudo chmod 750 "$LINE" ; done +sudo find /home/yunohost.transmission/watched -type d | while read LINE; do sudo chmod 770 "$LINE" ; done # Reload transmission service sudo service transmission-daemon reload diff --git a/scripts/upgrade b/scripts/upgrade index 51131be..a447713 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -13,6 +13,7 @@ app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get "$app" domain) path=$(ynh_app_setting_get "$app" path) rpcpassword=$(ynh_app_setting_get "$app" rpcpassword) +watchdir=$(ynh_app_setting_get "$app" watchdir) # Remove trailing "/" for next commands path=${path%/} @@ -24,11 +25,16 @@ sudo yunohost firewall allow TCP 51413 > /dev/null 2>&1 sudo apt-get install transmission-daemon -y -qq # Make directories and set rights -sudo mkdir -p /home/yunohost.transmission/{progress,completed} +sudo mkdir -p /home/yunohost.transmission/{progress,completed,watched} sudo chown -R debian-transmission:www-data /home/yunohost.transmission/ -sudo chown -R debian-transmission:debian-transmission /home/yunohost.transmission/progress +sudo chown -R debian-transmission:debian-transmission /home/yunohost.transmission/progress /home/yunohost.transmission/watched sudo find /home/yunohost.transmission/ -type f | while read LINE; do sudo chmod 640 "$LINE" ; done sudo find /home/yunohost.transmission/ -type d | while read LINE; do sudo chmod 750 "$LINE" ; done +sudo find /home/yunohost.transmission/watched -type d | while read LINE; do sudo chmod 770 "$LINE" ; done +# Add watchdir in settings if it does not exist yet (previous versions) +if [ -z "$watchdir" ]; then + ynh_app_setting_set "$app" watchdir "/home/yunohost.transmission/watched" +fi # Create RPC password if none exists if [ -z "$rpcpassword" ]; then @@ -37,10 +43,11 @@ if [ -z "$rpcpassword" ]; then fi # Configure Transmission and reload +sudo service transmission-daemon stop sed -i "s@RPCPASSWORDTOCHANGE@$rpcpassword@g" ../conf/settings.json sed -i "s@PATHTOCHANGE@$path@g" ../conf/settings.json sudo cp ../conf/settings.json /etc/transmission-daemon/settings.json -sudo service transmission-daemon reload +sudo service transmission-daemon start # Patch sources to add a download button if ! grep 'toolbar-downloads' /usr/share/transmission/web/index.html --quiet; then From 126d61d6e02fbed231c12a6a91731309210e39ce Mon Sep 17 00:00:00 2001 From: scith Date: Sat, 1 Apr 2017 20:41:34 +0200 Subject: [PATCH 3/3] YunoHost Multimedia YunoHost Multimedia: /home/yunohost.transmission and completed -> share/Torrents --- scripts/install | 9 +++++++++ scripts/upgrade | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/scripts/install b/scripts/install index 84e54d3..af1a22b 100644 --- a/scripts/install +++ b/scripts/install @@ -46,6 +46,15 @@ sudo find /home/yunohost.transmission/ -type d | while read LINE; do sudo chmod sudo find /home/yunohost.transmission/watched -type d | while read LINE; do sudo chmod 770 "$LINE" ; done ynh_app_setting_set "$app" watchdir "/home/yunohost.transmission/watched" +# YunoHost multimedia +wget -qq https://github.com/YunoHost-Apps/yunohost.multimedia/archive/master.zip +unzip -qq master.zip +sudo ./yunohost.multimedia-master/script/ynh_media_build.sh +# Set rights on transmission directory (parent need to be readable by other, and progress need to be writable by multimedia. Because files will move) +sudo ./yunohost.multimedia-master/script/ynh_media_addfolder.sh --source="/home/yunohost.transmission" --dest="share/Torrents" +# And share completed directory +sudo ./yunohost.multimedia-master/script/ynh_media_addfolder.sh --source="/home/yunohost.transmission/completed" --dest="share/Torrents" + # Create RPC password rpcpassword=$(ynh_string_random) ynh_app_setting_set "$app" rpcpassword "$rpcpassword" diff --git a/scripts/upgrade b/scripts/upgrade index a447713..e4d9cec 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -36,6 +36,15 @@ if [ -z "$watchdir" ]; then ynh_app_setting_set "$app" watchdir "/home/yunohost.transmission/watched" fi +# YunoHost multimedia +wget -qq https://github.com/YunoHost-Apps/yunohost.multimedia/archive/master.zip +unzip -qq master.zip +sudo ./yunohost.multimedia-master/script/ynh_media_build.sh +# Set rights on transmission directory (parent need to be readable by other, and progress need to be writable by multimedia. Because files will move) +sudo ./yunohost.multimedia-master/script/ynh_media_addfolder.sh --source="/home/yunohost.transmission" --dest="share/Torrents" +# And share completed directory +sudo ./yunohost.multimedia-master/script/ynh_media_addfolder.sh --source="/home/yunohost.transmission/completed" --dest="share/Torrents" + # Create RPC password if none exists if [ -z "$rpcpassword" ]; then rpcpassword=$(ynh_string_random)