mirror of
https://github.com/YunoHost-Apps/transmission_ynh.git
synced 2024-09-04 01:46:12 +02:00
commit
3937754ccf
13 changed files with 504 additions and 237 deletions
70
README.md
70
README.md
|
@ -1,16 +1,66 @@
|
|||
Transmission for YunoHost
|
||||
=========================
|
||||
# Transmission app for YunoHost
|
||||
|
||||
[Yunohost project](https://yunohost.org/#/)
|
||||
[![Integration level](https://dash.yunohost.org/integration/transmission.svg)](https://dash.yunohost.org/appci/app/transmission)
|
||||
[![Install Transmission with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=transmission)
|
||||
|
||||
[Transmission](http://www.transmissionbt.com/) is a fast, Free/Libre BitTorrent
|
||||
client. This package install the Transmission web server.
|
||||
> *This package allow you to install Transmission quickly and simply on a YunoHost server.
|
||||
If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.*
|
||||
|
||||
[![Install Wallabag v2 with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=transmission)
|
||||
## Overview
|
||||
|
||||
Transmission is a fast, easy, and free BitTorrent client.
|
||||
|
||||
Continuous intergation
|
||||
----------------------
|
||||
**Shipped version:** Debian repository version.
|
||||
|
||||
* [Weekly CI report (in french)](https://forum.yunohost.org/t/rapport-hebdomadaire-dintegration-continue/2297)
|
||||
* [Last CI build](https://ci-apps.yunohost.org/jenkins/job/transmission%20%28Official%29/lastBuild/consoleFull)
|
||||
## Screenshots
|
||||
|
||||
![](https://transmissionbt.com/images/screenshots/Clutch-Large.jpg)
|
||||
|
||||
## Demo
|
||||
|
||||
* [YunoHost demo](https://demo.yunohost.org/nextcloud/)
|
||||
|
||||
## Configuration
|
||||
|
||||
## Documentation
|
||||
|
||||
* Official documentation: https://github.com/transmission/transmission/wiki
|
||||
* YunoHost documentation: https://yunohost.org/#/app_transmission
|
||||
|
||||
## YunoHost specific features
|
||||
|
||||
* Integration with YunoHost Multimedia directories
|
||||
|
||||
#### Multi-users support
|
||||
|
||||
#### Supported architectures
|
||||
|
||||
* x86-64b - [![Build Status](https://ci-apps.yunohost.org/ci/logs/transmission%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/transmission/)
|
||||
* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/transmission%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/transmission/)
|
||||
* Jessie x86-64b - [![Build Status](https://ci-stretch.nohost.me/ci/logs/transmission%20%28Apps%29.svg)](https://ci-stretch.nohost.me/ci/apps/transmission/)
|
||||
|
||||
## Limitations
|
||||
|
||||
## Additionnal informations
|
||||
```
|
||||
|
||||
## Links
|
||||
|
||||
* Report a bug: https://github.com/YunoHost-Apps/transmission_ynh/issues
|
||||
* Transmission website: https://transmissionbt.com/
|
||||
* Transmission repository: https://github.com/transmission/transmission
|
||||
* YunoHost website: https://yunohost.org/
|
||||
|
||||
---
|
||||
|
||||
Developers infos
|
||||
----------------
|
||||
|
||||
Please do your pull request to the [testing branch](https://github.com/YunoHost-Apps/transmission_ynh/tree/testing).
|
||||
|
||||
To try the testing branch, please proceed like that.
|
||||
```
|
||||
sudo yunohost app install https://github.com/YunoHost-Apps/transmission_ynh/tree/testing --debug
|
||||
or
|
||||
sudo yunohost app upgrade transmission -u https://github.com/YunoHost-Apps/transmission_ynh/tree/testing --debug
|
||||
```
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
setup_sub_dir=1
|
||||
setup_root=1
|
||||
setup_nourl=0
|
||||
setup_private=0
|
||||
setup_private=1
|
||||
setup_public=0
|
||||
upgrade=1
|
||||
upgrade=1 from_commit=7d887f6bc1e29ce94de703517d5302580cbb8a7e
|
||||
|
@ -16,20 +16,9 @@
|
|||
multi_instance=0
|
||||
incorrect_path=1
|
||||
port_already_use=1 (9091)
|
||||
change_url=0
|
||||
change_url=1
|
||||
;;; Levels
|
||||
Level 1=auto
|
||||
Level 2=auto
|
||||
Level 3=auto
|
||||
# Level 4: No multi-users support
|
||||
Level 4=na
|
||||
# Level 5: https://github.com/YunoHost-Apps/transmission_ynh/issues/30
|
||||
Level 5=1
|
||||
Level 6=auto
|
||||
Level 7=auto
|
||||
Level 8=0
|
||||
Level 9=0
|
||||
Level 10=0
|
||||
Level 5=auto
|
||||
;;; Options
|
||||
Email=
|
||||
Notification=down
|
||||
|
|
5
conf/90-transmission.conf
Normal file
5
conf/90-transmission.conf
Normal file
|
@ -0,0 +1,5 @@
|
|||
# These settings affect the size of the buffers for send and receive sockets.
|
||||
# Size of receive socket buffer
|
||||
net.core.rmem_max = 4194304
|
||||
# Size of send socket buffer
|
||||
net.core.wmem_max = 1048576
|
|
@ -1,16 +1,18 @@
|
|||
location __PATH__transmission {
|
||||
proxy_pass http://127.0.0.1:__PORT____PATH__transmission;
|
||||
location __PATH__/transmission {
|
||||
proxy_pass http://127.0.0.1:__PORT____PATH__/transmission;
|
||||
|
||||
client_max_body_size 8M;
|
||||
|
||||
# Include SSOWAT user panel.
|
||||
include conf.d/yunohost_panel.conf.inc;
|
||||
more_clear_input_headers 'Accept-Encoding';
|
||||
}
|
||||
|
||||
location __PATH__ {
|
||||
location __PATH__/ {
|
||||
proxy_pass http://127.0.0.1:__PORT__/;
|
||||
}
|
||||
|
||||
location __PATH__downloads {
|
||||
location __PATH__/downloads {
|
||||
alias /home/yunohost.transmission/completed/;
|
||||
autoindex on;
|
||||
autoindex_exact_size off;
|
||||
|
|
|
@ -6,15 +6,15 @@
|
|||
"en": "A Fast, Easy, and Free BitTorrent Client",
|
||||
"fr": "Un client BitTorrent libre et rapide"
|
||||
},
|
||||
"version": "1.0",
|
||||
"version": "1.0~ynh2",
|
||||
"url": "https://www.transmissionbt.com/",
|
||||
"license": " GPL-3.0",
|
||||
"license": "GPL-3.0",
|
||||
"maintainer": {
|
||||
"name": "YunoHost Contributors",
|
||||
"email": "apps@yunohost.org"
|
||||
},
|
||||
"requirements": {
|
||||
"yunohost": ">= 2.7.2"
|
||||
"yunohost": ">= 3.5"
|
||||
},
|
||||
"multi_instance": false,
|
||||
"services": [
|
||||
|
|
|
@ -19,6 +19,6 @@
|
|||
- [ ] **Approval (LGTM)** :
|
||||
- [ ] **Approval (LGTM)** :
|
||||
- **CI succeeded** :
|
||||
[![Build Status](https://ci-apps-dev.yunohost.org/jenkins/job/transmission_ynh%20PR-NUM-/badge/icon)](https://ci-apps-dev.yunohost.org/jenkins/job/transmission_ynh%20PR-NUM-/)
|
||||
[![Build Status](https://ci-apps-hq.yunohost.org/jenkins/job/transmission_ynh%20PR-NUM-/badge/icon)](https://ci-apps-hq.yunohost.org/jenkins/job/transmission_ynh%20PR-NUM-/)
|
||||
*Please replace '-NUM-' in this link by the PR number.*
|
||||
When the PR is marked as ready to merge, you have to wait for 3 days before really merging it.
|
||||
|
|
|
@ -1,37 +1,62 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# YUNOHOST MULTIMEDIA INTEGRATION
|
||||
# COMMON VARIABLES
|
||||
#=================================================
|
||||
|
||||
# dependencies used by the app
|
||||
pkg_dependencies="transmission-daemon transmission-cli transmission-common acl"
|
||||
|
||||
#=================================================
|
||||
# PERSONAL HELPERS
|
||||
#=================================================
|
||||
|
||||
#=================================================
|
||||
# EXPERIMENTAL HELPERS
|
||||
#=================================================
|
||||
|
||||
#=================================================
|
||||
# FUTURE OFFICIAL HELPERS
|
||||
#=================================================
|
||||
|
||||
# Install or update the main directory yunohost.multimedia
|
||||
#
|
||||
# usage: ynh_multimedia_build_main_dir
|
||||
ynh_multimedia_build_main_dir () {
|
||||
wget -qq https://github.com/YunoHost-Apps/yunohost.multimedia/archive/master.zip
|
||||
unzip -qq master.zip
|
||||
local ynh_media_release="v1.2"
|
||||
local checksum="806a827ba1902d6911095602a9221181"
|
||||
|
||||
# Download yunohost.multimedia scripts
|
||||
wget -nv https://github.com/YunoHost-Apps/yunohost.multimedia/archive/${ynh_media_release}.tar.gz
|
||||
|
||||
# Check the control sum
|
||||
echo "${checksum} ${ynh_media_release}.tar.gz" | md5sum -c --status \
|
||||
|| ynh_die "Corrupt source"
|
||||
|
||||
# Check if the package acl is installed. Or install it.
|
||||
ynh_package_is_installed 'acl' \
|
||||
|| ynh_package_install acl
|
||||
|
||||
# Extract
|
||||
mkdir yunohost.multimedia-master
|
||||
tar -xf ${ynh_media_release}.tar.gz -C yunohost.multimedia-master --strip-components 1
|
||||
./yunohost.multimedia-master/script/ynh_media_build.sh
|
||||
}
|
||||
|
||||
# Add a directory in yunohost.multimedia
|
||||
# This "directory" will be a symbolic link to a existing directory.
|
||||
#
|
||||
# usage: ynh_multimedia_addfolder "Source directory" "Destination directory"
|
||||
#
|
||||
# | arg: -s, --source_dir= - Source directory - The real directory which contains your medias.
|
||||
# | arg: -d, --dest_dir= - Destination directory - The name and the place of the symbolic link, relative to "/home/yunohost.multimedia"
|
||||
ynh_multimedia_addfolder () {
|
||||
./yunohost.multimedia-master/script/ynh_media_addfolder.sh --source="$1" --dest="$2"
|
||||
}
|
||||
|
||||
#=================================================
|
||||
# BACKUP
|
||||
#=================================================
|
||||
|
||||
HUMAN_SIZE () { # Transforme une taille en Ko en une taille lisible pour un humain
|
||||
human=$(numfmt --to=iec --from-unit=1K $1)
|
||||
echo $human
|
||||
}
|
||||
|
||||
CHECK_SIZE () { # Vérifie avant chaque backup que l'espace est suffisant
|
||||
file_to_analyse=$1
|
||||
backup_size=$(du --summarize "$file_to_analyse" | cut -f1)
|
||||
free_space=$(df --output=avail "/home/yunohost.backup" | sed 1d)
|
||||
|
||||
if [ $free_space -le $backup_size ]
|
||||
then
|
||||
echo "Espace insuffisant pour sauvegarder $file_to_analyse." >&2
|
||||
echo "Espace disponible: $(HUMAN_SIZE $free_space)" >&2
|
||||
ynh_die "Espace nécessaire: $(HUMAN_SIZE $backup_size)"
|
||||
fi
|
||||
# Declare an array to define the options of this helper.
|
||||
declare -Ar args_array=( [s]=source_dir= [d]=dest_dir= )
|
||||
local source_dir
|
||||
local dest_dir
|
||||
# Manage arguments with getopts
|
||||
ynh_handle_getopts_args "$@"
|
||||
|
||||
./yunohost.multimedia-master/script/ynh_media_addfolder.sh --source="$source_dir" --dest="$dest_dir"
|
||||
}
|
||||
|
|
|
@ -1,64 +1,61 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC STARTING
|
||||
#=================================================
|
||||
# MANAGE FAILURE OF THE SCRIPT
|
||||
#=================================================
|
||||
|
||||
# Exit on command errors and treat unset variables as an error
|
||||
set -eu
|
||||
|
||||
# GENERIC START
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
if [ ! -e _common.sh ]; then
|
||||
# Get the _common.sh file if it's not in the current directory
|
||||
cp ../settings/scripts/_common.sh ./_common.sh
|
||||
chmod a+rx _common.sh
|
||||
fi
|
||||
source _common.sh
|
||||
source ../settings/scripts/_common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# MANAGE SCRIPT FAILURE
|
||||
#=================================================
|
||||
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
domain=$(ynh_app_setting_get $app domain)
|
||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
|
||||
#=================================================
|
||||
# STANDARD BACKUP STEPS
|
||||
#=================================================
|
||||
# BACKUP OF THE NGINX CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Backing up nginx web server configuration..."
|
||||
|
||||
ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC BACKUP
|
||||
#=================================================
|
||||
# BACKUP TRANSMISSION CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Backing up transmission configuration..."
|
||||
|
||||
ynh_backup "/etc/transmission-daemon/settings.json"
|
||||
ynh_backup --src_path="/etc/transmission-daemon/settings.json"
|
||||
ynh_backup --src_path="/etc/sysctl.d/90-transmission.conf"
|
||||
|
||||
#=================================================
|
||||
# BACKUP DATA
|
||||
#=================================================
|
||||
ynh_script_progression --message="Backing up transmission data..."
|
||||
|
||||
ynh_backup "/usr/share/transmission"
|
||||
ynh_backup --src_path="/usr/share/transmission"
|
||||
ynh_backup --src_path="/var/lib/transmission-daemon"
|
||||
|
||||
ynh_backup "/var/lib/transmission-daemon"
|
||||
ynh_backup --src_path="/home/yunohost.transmission" --is_big
|
||||
|
||||
backup_core_only=$(ynh_app_setting_get $app backup_core_only)
|
||||
# If backup_core_only have a value in settings.yml, do not backup the data directory
|
||||
if [ -z $backup_core_only ]
|
||||
then
|
||||
CHECK_SIZE "/home/yunohost.transmission"
|
||||
ynh_backup "/home/yunohost.transmission"
|
||||
else
|
||||
echo "Data dir will not saved, because backup_core_only is set." >&2
|
||||
fi
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)." --last
|
||||
|
|
115
scripts/change_url
Normal file
115
scripts/change_url
Normal file
|
@ -0,0 +1,115 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC STARTING
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# RETRIEVE ARGUMENTS
|
||||
#=================================================
|
||||
|
||||
old_domain=$YNH_APP_OLD_DOMAIN
|
||||
old_path=$YNH_APP_OLD_PATH
|
||||
|
||||
new_domain=$YNH_APP_NEW_DOMAIN
|
||||
new_path=$YNH_APP_NEW_PATH
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
|
||||
# Needed for helper "ynh_add_nginx_config"
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||
|
||||
#=================================================
|
||||
# CHECK WHICH PARTS SHOULD BE CHANGED
|
||||
#=================================================
|
||||
|
||||
change_domain=0
|
||||
if [ "$old_domain" != "$new_domain" ]
|
||||
then
|
||||
change_domain=1
|
||||
fi
|
||||
|
||||
change_path=0
|
||||
if [ "$old_path" != "$new_path" ]
|
||||
then
|
||||
change_path=1
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# STANDARD MODIFICATIONS
|
||||
#=================================================
|
||||
# STOP SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Stopping transmission..." --weight=2
|
||||
|
||||
ynh_systemd_action --service_name=transmission-daemon --action=stop
|
||||
|
||||
#=================================================
|
||||
# MODIFY URL IN NGINX CONF
|
||||
#=================================================
|
||||
ynh_script_progression --message="Updating nginx web server configuration..." --weight=2
|
||||
|
||||
nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf
|
||||
|
||||
# Change the path in the nginx config file
|
||||
if [ $change_path -eq 1 ]
|
||||
then
|
||||
# Make a backup of the original nginx config file if modified
|
||||
ynh_backup_if_checksum_is_different --file="$nginx_conf_path"
|
||||
# Set global variables for nginx helper
|
||||
domain="$old_domain"
|
||||
path_url="$new_path"
|
||||
# Create a dedicated nginx config
|
||||
ynh_add_nginx_config
|
||||
fi
|
||||
|
||||
# Change the domain for nginx
|
||||
if [ $change_domain -eq 1 ]
|
||||
then
|
||||
# Delete file checksum for the old conf file location
|
||||
ynh_delete_file_checksum --file="$nginx_conf_path"
|
||||
mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf
|
||||
# Store file checksum for the new config file location
|
||||
ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC MODIFICATIONS
|
||||
#=================================================
|
||||
# UPDATE TRANSMISSION CONFIGURATION
|
||||
#=================================================
|
||||
|
||||
ynh_replace_string --match_string="rpc-url\": \"${old_path%/}/transmission/" --replace_string="rpc-url\": \"${new_path%/}/transmission/" --target_file="/etc/transmission-daemon/settings.json"
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALISATION
|
||||
#=================================================
|
||||
# START SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Starting transmission..." --weight=2
|
||||
|
||||
ynh_systemd_action --service_name=transmission-daemon --action=start
|
||||
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reloading nginx web server..."
|
||||
|
||||
ynh_systemd_action --service_name=nginx --action=reload
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Change of URL completed for $app" --last
|
|
@ -28,45 +28,47 @@ app=$YNH_APP_INSTANCE_NAME
|
|||
#=================================================
|
||||
# CHECK IF THE APP CAN BE INSTALLED WITH THIS ARGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Validating installation parameters..."
|
||||
|
||||
# Normalize the url path syntax
|
||||
path_url=$(ynh_normalize_url_path $path_url)
|
||||
|
||||
# Check web path availability
|
||||
ynh_webpath_available $domain $path_url
|
||||
# Register (book) web path
|
||||
ynh_webpath_register $app $domain $path_url
|
||||
ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url
|
||||
|
||||
#=================================================
|
||||
# STORE SETTINGS FROM MANIFEST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Storing installation settings..." --weight=2
|
||||
|
||||
ynh_app_setting_set $app domain $domain
|
||||
ynh_app_setting_set $app path $path_url
|
||||
ynh_app_setting_set --app=$app --key=domain --value=$domain
|
||||
ynh_app_setting_set --app=$app --key=path --value=$path_url
|
||||
|
||||
#=================================================
|
||||
# STANDARD MODIFICATIONS
|
||||
#=================================================
|
||||
# FIND AND OPEN PORTS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring firewall..." --weight=16
|
||||
|
||||
# Find a free port
|
||||
port=$(ynh_find_port 9091)
|
||||
port=$(ynh_find_port --port=9091)
|
||||
# Open this port
|
||||
yunohost firewall allow --no-upnp TCP $port >/dev/null 2>&1
|
||||
ynh_app_setting_set $app port $port
|
||||
ynh_exec_warn_less yunohost firewall allow --no-upnp TCP $port
|
||||
ynh_app_setting_set --app=$app --key=port --value=$port
|
||||
|
||||
# Find a free port
|
||||
peer_port=$(ynh_find_port 51413)
|
||||
peer_port=$(ynh_find_port --port=51413)
|
||||
# Open this port
|
||||
yunohost firewall allow Both $peer_port >/dev/null 2>&1
|
||||
ynh_app_setting_set $app peer_port $peer_port
|
||||
ynh_exec_warn_less yunohost firewall allow Both $peer_port
|
||||
ynh_app_setting_set --app=$app --key=peer_port --value=$peer_port
|
||||
|
||||
#=================================================
|
||||
# INSTALL TRANSMISSION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Installing transmission..." --weight=16
|
||||
|
||||
ynh_install_app_dependencies transmission-daemon transmission-cli transmission-common acl
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
|
||||
# Fix a stupid issue which happens sometimes ...
|
||||
# transmission-common is installed (it's a dependency of
|
||||
|
@ -82,10 +84,9 @@ fi
|
|||
#=================================================
|
||||
# NGINX CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring nginx web server..." --weight=2
|
||||
|
||||
# Add a "/" at the end of path_url for next commands
|
||||
# To avoid a double / in the nginx config file.
|
||||
[ "$path_url" = "/" ] || path_url=${path_url}/
|
||||
# Create a dedicated nginx config
|
||||
ynh_add_nginx_config
|
||||
|
||||
#=================================================
|
||||
|
@ -108,37 +109,50 @@ chmod -R 777 /home/yunohost.transmission/watched
|
|||
#=================================================
|
||||
# CONFIGURE TRANSMISSION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring transmission..." --weight=2
|
||||
|
||||
# Transmission has to be stopped before modifying its config
|
||||
systemctl stop transmission-daemon
|
||||
ynh_systemd_action --service_name=transmission-daemon --action=stop
|
||||
|
||||
# Create a RPC password
|
||||
rpcpassword=$(ynh_string_random)
|
||||
ynh_app_setting_set $app rpcpassword "$rpcpassword"
|
||||
ynh_app_setting_set --app=$app --key=rpcpassword --value="$rpcpassword"
|
||||
|
||||
ynh_replace_string "__RPC_PASSWORD_TO_CHANGE__" "$rpcpassword" ../conf/settings.json
|
||||
ynh_replace_string "__PATH__" "$path_url" ../conf/settings.json
|
||||
ynh_replace_string "__PEER_PORT__" "$peer_port" ../conf/settings.json
|
||||
ynh_replace_string "__PORT__" "$port" ../conf/settings.json
|
||||
ynh_replace_string --match_string="__RPC_PASSWORD_TO_CHANGE__" --replace_string="$rpcpassword" --target_file=../conf/settings.json
|
||||
if [ "$path_url" != "/" ]
|
||||
then
|
||||
ynh_replace_string --match_string="__PATH__" --replace_string="$path_url/" --target_file=../conf/settings.json
|
||||
else
|
||||
ynh_replace_string --match_string="__PATH__" --replace_string="$path_url" --target_file=../conf/settings.json
|
||||
fi
|
||||
ynh_replace_string --match_string="__PEER_PORT__" --replace_string="$peer_port" --target_file=../conf/settings.json
|
||||
ynh_replace_string --match_string="__PORT__" --replace_string="$port" --target_file=../conf/settings.json
|
||||
cp ../conf/settings.json /etc/transmission-daemon/settings.json
|
||||
|
||||
cp ../conf/90-transmission.conf /etc/sysctl.d/90-transmission.conf
|
||||
if [ ${PACKAGE_CHECK_EXEC:-0} -eq 0 ]; then
|
||||
sysctl --load=/etc/sysctl.d/90-transmission.conf
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# STORE THE CHECKSUM OF THE CONFIG FILE
|
||||
#=================================================
|
||||
|
||||
ynh_store_file_checksum /etc/transmission-daemon/settings.json
|
||||
ynh_store_file_checksum --file=/etc/transmission-daemon/settings.json
|
||||
ynh_store_file_checksum --file=/etc/sysctl.d/90-transmission.conf
|
||||
|
||||
#=================================================
|
||||
# YUNOHOST MULTIMEDIA INTEGRATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Adding multimedia directories..." --weight=4
|
||||
|
||||
ynh_multimedia_build_main_dir
|
||||
# Set rights on transmission directory (parent need to be readable by other, and progress need to be writable by multimedia. Because files will move)
|
||||
ynh_multimedia_addfolder "/home/yunohost.transmission" "share/Torrents"
|
||||
ynh_multimedia_addfolder --source_dir="/home/yunohost.transmission" --dest_dir="share/Torrents"
|
||||
# And share completed directory
|
||||
ynh_multimedia_addfolder "/home/yunohost.transmission/completed" "share/Torrents"
|
||||
ynh_multimedia_addfolder --source_dir="/home/yunohost.transmission/completed" --dest_dir="share/Torrents"
|
||||
# Share also watched directory, to allow to use it easily
|
||||
ynh_multimedia_addfolder "/home/yunohost.transmission/watched" "share/Torrent to download"
|
||||
ynh_multimedia_addfolder --source_dir="/home/yunohost.transmission/watched" --dest_dir="share/Torrent to download"
|
||||
|
||||
#=================================================
|
||||
# PATCH SOURCE TO ADD A DOWNLOAD BUTTON
|
||||
|
@ -148,22 +162,30 @@ cp ../sources/extra_files/app/toolbar-downloads.png /usr/share/transmission/web/
|
|||
cat ../sources/extra_files/app/ynh_common.css >> /usr/share/transmission/web/style/transmission/common.css
|
||||
ynh_replace_string "<div id=\"toolbar-inspector\" title=\"Toggle Inspector\"></div>" "<div id=\"toolbar-inspector\" title=\"Toggle Inspector\"></div><div id=\"toolbar-separator\"></div><a href=\"../../downloads/\" id=\"toolbar-downloads\" title=\"Downloads\" target=\"_blank\"></a>" /usr/share/transmission/web/index.html
|
||||
|
||||
#=================================================
|
||||
# START TRANSMISSION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Starting transmission..."
|
||||
|
||||
ynh_systemd_action --service_name=transmission-daemon --action=start
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALISATION
|
||||
#=================================================
|
||||
# ENABLE SERVICE IN ADMIN PANEL
|
||||
# ADVERTISE SERVICE IN ADMIN PANEL
|
||||
#=================================================
|
||||
|
||||
yunohost service add transmission-daemon --log "/var/log/syslog"
|
||||
|
||||
#=================================================
|
||||
# START TRANSMISSION
|
||||
#=================================================
|
||||
|
||||
systemctl start transmission-daemon
|
||||
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reloading nginx web server..."
|
||||
|
||||
systemctl reload nginx
|
||||
ynh_systemd_action --service_name=nginx --action=reload
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Installation of $app completed" --last
|
||||
|
|
|
@ -12,50 +12,54 @@ source /usr/share/yunohost/helpers
|
|||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
domain=$(ynh_app_setting_get $app domain)
|
||||
port=$(ynh_app_setting_get $app port)
|
||||
peer_port=$(ynh_app_setting_get $app peer_port)
|
||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||
peer_port=$(ynh_app_setting_get --app=$app --key=peer_port)
|
||||
|
||||
#=================================================
|
||||
# STANDARD REMOVE
|
||||
#=================================================
|
||||
# REMOVE TRANSMISSION-DAEMON
|
||||
# REMOVE SERVICE FROM ADMIN PANEL
|
||||
#=================================================
|
||||
|
||||
ynh_remove_app_dependencies
|
||||
|
||||
#=================================================
|
||||
# DISABLE SERVICE IN ADMIN PANEL
|
||||
#=================================================
|
||||
|
||||
if yunohost service status | grep -q transmission-daemon
|
||||
# Remove a service from the admin panel, added by `yunohost service add`
|
||||
if yunohost service status transmission-daemon >/dev/null 2>&1
|
||||
then
|
||||
echo "Remove transmission-daemon service"
|
||||
ynh_script_progression --message="Removing $app service..." --weight=8
|
||||
yunohost service remove transmission-daemon
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# REMOVE TRANSMISSION-DAEMON
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing transmission..." --weight=9
|
||||
|
||||
ynh_remove_app_dependencies
|
||||
|
||||
#=================================================
|
||||
# CLOSE THE PORTS
|
||||
#=================================================
|
||||
|
||||
if yunohost firewall list | grep -q "\- $port$"
|
||||
then
|
||||
echo "Close port $port"
|
||||
yunohost firewall disallow TCP $port 2>&1
|
||||
ynh_script_progression --message="Closing port $port..."
|
||||
ynh_exec_warn_less yunohost firewall disallow TCP $port
|
||||
fi
|
||||
|
||||
if yunohost firewall list | grep -q "\- $peer_port$"
|
||||
then
|
||||
echo "Close port $peer_port"
|
||||
yunohost firewall disallow Both $peer_port 2>&1
|
||||
ynh_script_progression --message="Closing port $peer_port..."
|
||||
ynh_exec_warn_less yunohost firewall disallow Both $peer_port
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# REMOVE THE NGINX CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing nginx web server configuration..."
|
||||
|
||||
# Remove the dedicated nginx config
|
||||
ynh_remove_nginx_config
|
||||
|
@ -65,27 +69,30 @@ ynh_remove_nginx_config
|
|||
#=================================================
|
||||
# REMOVE DATA
|
||||
#=================================================
|
||||
|
||||
backup_core_only=$(ynh_app_setting_get $app backup_core_only)
|
||||
# If backup_core_only have a value in settings.yml, do not remove the data directory
|
||||
if [ -z $backup_core_only ]
|
||||
then
|
||||
ynh_secure_remove /home/yunohost.transmission
|
||||
fi
|
||||
|
||||
# And remove the link in yunohost.multimedia
|
||||
rm "/home/yunohost.multimedia/share/Torrents"
|
||||
rm "/home/yunohost.multimedia/share/Torrent to download"
|
||||
ynh_script_progression --message="Removing transmission data..."
|
||||
|
||||
# Web interface
|
||||
ynh_secure_remove /usr/share/transmission
|
||||
ynh_secure_remove --file=/usr/share/transmission
|
||||
# And data
|
||||
ynh_secure_remove /var/lib/transmission-daemon
|
||||
ynh_secure_remove --file=/var/lib/transmission-daemon
|
||||
# Kernel parameters
|
||||
ynh_secure_remove --file=/etc/sysctl.d/90-transmission.conf
|
||||
if [ ${PACKAGE_CHECK_EXEC:-0} -eq 0 ]; then
|
||||
sysctl --load=/etc/sysctl.d/90-transmission.conf
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALISATION
|
||||
#=================================================
|
||||
# REMOVE DEDICATED USER
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing the dedicated system user"
|
||||
|
||||
ynh_system_user_delete debian-transmission
|
||||
# Delete a system user
|
||||
ynh_system_user_delete --username=debian-transmission
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Removal of $app completed" --last
|
||||
|
|
120
scripts/restore
120
scripts/restore
|
@ -1,40 +1,37 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC STARTING
|
||||
#=================================================
|
||||
# MANAGE FAILURE OF THE SCRIPT
|
||||
#=================================================
|
||||
|
||||
# Exit on command errors and treat unset variables as an error
|
||||
set -eu
|
||||
|
||||
# GENERIC START
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
if [ ! -e _common.sh ]; then
|
||||
# Get the _common.sh file if it's not in the current directory
|
||||
cp ../settings/scripts/_common.sh ./_common.sh
|
||||
chmod a+rx _common.sh
|
||||
fi
|
||||
source _common.sh
|
||||
source ../settings/scripts/_common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# MANAGE SCRIPT FAILURE
|
||||
#=================================================
|
||||
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading settings..."
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
domain=$(ynh_app_setting_get $app domain)
|
||||
path_url=$(ynh_app_setting_get $app path)
|
||||
port=$(ynh_app_setting_get $app port)
|
||||
peer_port=$(ynh_app_setting_get $app peer_port)
|
||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||
peer_port=$(ynh_app_setting_get --app=$app --key=peer_port)
|
||||
|
||||
#=================================================
|
||||
# CHECK IF THE APP CAN BE RESTORED
|
||||
#=================================================
|
||||
ynh_script_progression --message="Validating restoration parameters..."
|
||||
|
||||
ynh_webpath_available $domain $path_url \
|
||||
|| ynh_die "Path not available: ${domain}${path_url}"
|
||||
|
@ -42,87 +39,106 @@ ynh_webpath_available $domain $path_url \
|
|||
#=================================================
|
||||
# STANDARD RESTORE STEPS
|
||||
#=================================================
|
||||
# RESTORE OF THE NGINX CONFIGURATION
|
||||
# RESTORE THE NGINX CONFIGURATION
|
||||
#=================================================
|
||||
|
||||
ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
|
||||
#=================================================
|
||||
# OPEN PORTS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring firewall..." --weight=13
|
||||
|
||||
yunohost firewall allow --no-upnp TCP $port >/dev/null 2>&1
|
||||
yunohost firewall allow Both $peer_port >/dev/null 2>&1
|
||||
ynh_exec_warn_less yunohost firewall allow --no-upnp TCP $port
|
||||
ynh_exec_warn_less yunohost firewall allow Both $peer_port
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC RESTORE
|
||||
#=================================================
|
||||
# REINSTALL TRANSMISSION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reinstalling transmission..." --weight=16
|
||||
|
||||
ynh_install_app_dependencies transmission-daemon transmission-cli transmission-common acl
|
||||
# Define and install dependencies
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
|
||||
#=================================================
|
||||
# RESTORE TRANSMISSION CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring transmission configuration..." --weight=2
|
||||
|
||||
# Transmission has to be stopped before modifying its config
|
||||
systemctl stop transmission-daemon
|
||||
ynh_systemd_action --service_name=transmission-daemon --action=stop
|
||||
|
||||
ynh_secure_remove /etc/transmission-daemon/settings.json
|
||||
ynh_restore_file /etc/transmission-daemon/settings.json
|
||||
ynh_secure_remove --file=/etc/transmission-daemon/settings.json
|
||||
ynh_restore_file --origin_path=/etc/transmission-daemon/settings.json
|
||||
|
||||
ynh_restore_file --origin_path="/etc/sysctl.d/90-transmission.conf"
|
||||
if [ ${PACKAGE_CHECK_EXEC:-0} -eq 0 ]; then
|
||||
sysctl --load=/etc/sysctl.d/90-transmission.conf
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# RESTORE DATA
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring transmission data..."
|
||||
|
||||
ynh_secure_remove /usr/share/transmission
|
||||
ynh_restore_file /usr/share/transmission
|
||||
ynh_secure_remove --file=/usr/share/transmission
|
||||
ynh_restore_file --origin_path=/usr/share/transmission
|
||||
|
||||
ynh_secure_remove /var/lib/transmission-daemon
|
||||
ynh_restore_file /var/lib/transmission-daemon
|
||||
ynh_secure_remove --file=/var/lib/transmission-daemon
|
||||
ynh_restore_file --origin_path=/var/lib/transmission-daemon
|
||||
|
||||
# The data directory is restored only if it's in the backup.
|
||||
# If the backup have made with backup_core_only option, this directory didn't saved.
|
||||
if [ -d "${YNH_APP_BACKUP_DIR}/home/yunohost.transmission" ]
|
||||
then
|
||||
ynh_restore_file "/home/yunohost.transmission"
|
||||
else
|
||||
mkdir -p /home/yunohost.transmission/{progress,completed,watched}
|
||||
chown -R debian-transmission:www-data /home/yunohost.transmission/
|
||||
chown -R debian-transmission: /home/yunohost.transmission/{progress,watched}
|
||||
chmod -R 640 /home/yunohost.transmission
|
||||
chmod -R 777 /home/yunohost.transmission/watched
|
||||
fi
|
||||
# Remove the backup_core_only option from the settings.yml
|
||||
ynh_app_setting_delete $app backup_core_only
|
||||
# Use --not_mandatory for the data directory, because if the backup has been made with BACKUP_CORE_ONLY, there's no data into the backup.
|
||||
ynh_restore_file --origin_path="/home/yunohost.transmission" --not_mandatory
|
||||
|
||||
#=================================================
|
||||
# RESTORE USER RIGHTS
|
||||
#=================================================
|
||||
|
||||
mkdir -p /home/yunohost.transmission/{progress,completed,watched}
|
||||
chown -R debian-transmission:www-data /home/yunohost.transmission/
|
||||
chown -R debian-transmission: /home/yunohost.transmission/{progress,watched}
|
||||
chmod -R 640 /home/yunohost.transmission
|
||||
chmod -R 777 /home/yunohost.transmission/watched
|
||||
|
||||
#=================================================
|
||||
# YUNOHOST MULTIMEDIA INTEGRATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Adding multimedia directories..." --weight=4
|
||||
|
||||
ynh_multimedia_build_main_dir
|
||||
# Set rights on transmission directory (parent need to be readable by other, and progress need to be writable by multimedia. Because files will move)
|
||||
ynh_multimedia_addfolder "/home/yunohost.transmission" "share/Torrents"
|
||||
ynh_multimedia_addfolder --source_dir="/home/yunohost.transmission" --dest_dir="share/Torrents"
|
||||
# And share completed directory
|
||||
ynh_multimedia_addfolder "/home/yunohost.transmission/completed" "share/Torrents"
|
||||
ynh_multimedia_addfolder --source_dir="/home/yunohost.transmission/completed" --dest_dir="share/Torrents"
|
||||
# Share also watched directory, to allow to use it easily
|
||||
ynh_multimedia_addfolder "/home/yunohost.transmission/watched" "share/Torrent to download"
|
||||
ynh_multimedia_addfolder --source_dir="/home/yunohost.transmission/watched" --dest_dir="share/Torrent to download"
|
||||
|
||||
#=================================================
|
||||
# ENABLE SERVICE IN ADMIN PANEL
|
||||
# START TRANSMISSION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Starting transmission..."
|
||||
|
||||
ynh_systemd_action --service_name=transmission-daemon --action=start
|
||||
|
||||
#=================================================
|
||||
# ADVERTISE SERVICE IN ADMIN PANEL
|
||||
#=================================================
|
||||
|
||||
yunohost service add transmission-daemon --log "/var/log/syslog"
|
||||
|
||||
#=================================================
|
||||
# START TRANSMISSION
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
# RELOAD NGINX AND PHP-FPM
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reloading nginx web server..." --weight=2
|
||||
|
||||
systemctl start transmission-daemon
|
||||
ynh_systemd_action --service_name=nginx --action=reload
|
||||
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
systemctl reload nginx
|
||||
ynh_script_progression --message="Restoration completed for $app" --last
|
||||
|
|
105
scripts/upgrade
105
scripts/upgrade
|
@ -12,65 +12,84 @@ source /usr/share/yunohost/helpers
|
|||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..." --weight=2
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
domain=$(ynh_app_setting_get $app domain)
|
||||
path_url=$(ynh_app_setting_get $app path)
|
||||
port=$(ynh_app_setting_get $app port)
|
||||
peer_port=$(ynh_app_setting_get $app peer_port)
|
||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||
peer_port=$(ynh_app_setting_get --app=$app --key=peer_port)
|
||||
|
||||
#=================================================
|
||||
# FIX OLD THINGS
|
||||
# CHECK VERSION
|
||||
#=================================================
|
||||
|
||||
if [ -z $port ]; then
|
||||
upgrade_type=$(ynh_check_app_version_changed)
|
||||
|
||||
#=================================================
|
||||
# ENSURE DOWNWARD COMPATIBILITY
|
||||
#=================================================
|
||||
ynh_script_progression --message="Ensuring downward compatibility..." --weight=4
|
||||
|
||||
if [ -z "$port" ]; then
|
||||
port=9091
|
||||
ynh_app_setting_set $app port $port
|
||||
ynh_app_setting_set --app=$app --key=port --value=$port
|
||||
|
||||
fi
|
||||
if [ -z $peer_port ]; then
|
||||
if [ -z "$peer_port" ]; then
|
||||
peer_port=51413
|
||||
ynh_app_setting_set $app peer_port $peer_port
|
||||
ynh_app_setting_set --app=$app --key=peer_port --value=$peer_port
|
||||
fi
|
||||
|
||||
# Add peer_port also on UDP.
|
||||
yunohost firewall allow UDP $peer_port >/dev/null 2>&1
|
||||
ynh_exec_warn_less yunohost firewall allow UDP $peer_port
|
||||
|
||||
#=================================================
|
||||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
||||
#=================================================
|
||||
ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=3
|
||||
|
||||
# Inform the backup/restore process that it should not save the data directory
|
||||
# Use only for the previous backup script that doesn't set 'is_big'
|
||||
ynh_app_setting_set $app backup_core_only 1
|
||||
ynh_backup_before_upgrade # Backup the current version of the app
|
||||
|
||||
# Backup the current version of the app
|
||||
ynh_backup_before_upgrade
|
||||
|
||||
# Remove the option backup_core_only after the backup.
|
||||
ynh_app_setting_delete $app backup_core_only
|
||||
|
||||
ynh_clean_setup () {
|
||||
ynh_restore_upgradebackup # restore it if the upgrade fails
|
||||
# restore it if the upgrade fails
|
||||
ynh_restore_upgradebackup
|
||||
}
|
||||
ynh_abort_if_errors # Exit if an error occurs during the execution of the script
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
#=================================================
|
||||
# CHECK THE PATH
|
||||
#=================================================
|
||||
|
||||
# Normalize the URL path syntax
|
||||
path_url=$(ynh_normalize_url_path $path_url)
|
||||
path_url=$(ynh_normalize_url_path --path_url=$path_url)
|
||||
|
||||
#=================================================
|
||||
# STANDARD UPGRADE STEPS
|
||||
#=================================================
|
||||
# NGINX CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading nginx web server configuration..." --weight=2
|
||||
|
||||
# Add a "/" at the end of path_url for next commands
|
||||
# To avoid a double / in the nginx config file.
|
||||
[ "$path_url" = "/" ] || path_url=${path_url}/
|
||||
# Create a dedicated nginx config
|
||||
ynh_add_nginx_config
|
||||
|
||||
#=================================================
|
||||
# INSTALL DEPENDENCIES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading dependencies..." --weight=7
|
||||
|
||||
ynh_install_app_dependencies transmission-daemon transmission-cli transmission-common acl
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC UPGRADE
|
||||
|
@ -92,41 +111,57 @@ chmod -R 777 /home/yunohost.transmission/watched
|
|||
#=================================================
|
||||
# CONFIGURE TRANSMISSION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reconfiguring transmission..." --weight=2
|
||||
|
||||
# Transmission has to be stopped before modifying its config
|
||||
systemctl stop transmission-daemon
|
||||
ynh_systemd_action --service_name=transmission-daemon --action=stop
|
||||
|
||||
# Verify the checksum and backup the file if it's different
|
||||
ynh_backup_if_checksum_is_different /etc/transmission-daemon/settings.json
|
||||
ynh_backup_if_checksum_is_different --file=/etc/transmission-daemon/settings.json
|
||||
|
||||
# Create a RPC password
|
||||
rpcpassword=$(ynh_string_random)
|
||||
ynh_app_setting_set $app rpcpassword "$rpcpassword"
|
||||
ynh_app_setting_set --app=$app --key=rpcpassword --value="$rpcpassword"
|
||||
|
||||
ynh_replace_string "__RPC_PASSWORD_TO_CHANGE__" "$rpcpassword" ../conf/settings.json
|
||||
ynh_replace_string "__PATH__" "$path_url" ../conf/settings.json
|
||||
ynh_replace_string "__PEER_PORT__" "$peer_port" ../conf/settings.json
|
||||
ynh_replace_string "__PORT__" "$port" ../conf/settings.json
|
||||
ynh_replace_string --match_string="__RPC_PASSWORD_TO_CHANGE__" --replace_string="$rpcpassword" --target_file=../conf/settings.json
|
||||
if [ "$path_url" != "/" ]
|
||||
then
|
||||
ynh_replace_string --match_string="__PATH__" --replace_string="$path_url/" --target_file=../conf/settings.json
|
||||
else
|
||||
ynh_replace_string --match_string="__PATH__" --replace_string="$path_url" --target_file=../conf/settings.json
|
||||
fi
|
||||
ynh_replace_string --match_string="__PEER_PORT__" --replace_string="$peer_port" --target_file=../conf/settings.json
|
||||
ynh_replace_string --match_string="__PORT__" --replace_string="$port" --target_file=../conf/settings.json
|
||||
cp ../conf/settings.json /etc/transmission-daemon/settings.json
|
||||
|
||||
# Verify the checksum and backup the file if it's different
|
||||
ynh_backup_if_checksum_is_different --file=/etc/sysctl.d/90-transmission.conf
|
||||
|
||||
cp ../conf/90-transmission.conf /etc/sysctl.d/90-transmission.conf
|
||||
if [ ${PACKAGE_CHECK_EXEC:-0} -eq 0 ]; then
|
||||
sysctl --load=/etc/sysctl.d/90-transmission.conf
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# STORE THE CHECKSUM OF THE CONFIG FILE
|
||||
#=================================================
|
||||
|
||||
# Recalculate and store the config file checksum into the app settings
|
||||
ynh_store_file_checksum /etc/transmission-daemon/settings.json
|
||||
ynh_store_file_checksum --file=/etc/transmission-daemon/settings.json
|
||||
ynh_store_file_checksum --file=/etc/sysctl.d/90-transmission.conf
|
||||
|
||||
#=================================================
|
||||
# YUNOHOST MULTIMEDIA INTEGRATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Adding multimedia directories..." --weight=3
|
||||
|
||||
ynh_multimedia_build_main_dir
|
||||
# Set rights on transmission directory (parent need to be readable by other, and progress need to be writable by multimedia. Because files will move)
|
||||
ynh_multimedia_addfolder "/home/yunohost.transmission" "share/Torrents"
|
||||
ynh_multimedia_addfolder --source_dir="/home/yunohost.transmission" --dest_dir="share/Torrents"
|
||||
# And share completed directory
|
||||
ynh_multimedia_addfolder "/home/yunohost.transmission/completed" "share/Torrents"
|
||||
ynh_multimedia_addfolder --source_dir="/home/yunohost.transmission/completed" --dest_dir="share/Torrents"
|
||||
# Share also watched directory, to allow to use it easily
|
||||
ynh_multimedia_addfolder "/home/yunohost.transmission/watched" "share/Torrent to download"
|
||||
ynh_multimedia_addfolder --source_dir="/home/yunohost.transmission/watched" --dest_dir="share/Torrent to download"
|
||||
|
||||
#=================================================
|
||||
# PATCH SOURCE TO ADD A DOWNLOAD BUTTON
|
||||
|
@ -142,17 +177,21 @@ ynh_replace_string "<div id=\"toolbar-inspector\" title=\"Toggle Inspector\"></d
|
|||
#=================================================
|
||||
# START TRANSMISSION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Starting transmission..." --weight=2
|
||||
|
||||
systemctl start transmission-daemon
|
||||
ynh_systemd_action --service_name=transmission-daemon --action=start
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALISATION
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reloading nginx web server..."
|
||||
|
||||
systemctl reload nginx
|
||||
ynh_systemd_action --service_name=nginx --action=reload
|
||||
|
||||
#=================================================
|
||||
# REMOVE BACKUP_CORE_ONLY
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_app_setting_delete $app backup_core_only
|
||||
ynh_script_progression --message="Upgrade of $app completed" --last
|
||||
|
|
Loading…
Reference in a new issue