From ab1f9f761ef63896cf7ab0d0324984328c5687c3 Mon Sep 17 00:00:00 2001 From: Martin Winkler Date: Thu, 18 Mar 2021 00:43:09 +0100 Subject: [PATCH] New sequence for aria2 --- seqs/aria2.cfg.example | 8 +++++ seqs/aria2.sh | 78 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 seqs/aria2.cfg.example create mode 100755 seqs/aria2.sh diff --git a/seqs/aria2.cfg.example b/seqs/aria2.cfg.example new file mode 100644 index 0000000..9592ffd --- /dev/null +++ b/seqs/aria2.cfg.example @@ -0,0 +1,8 @@ +#!/bin/bash + +ARIA2_RPC_SECRET="" +ARIA2_CONF="dir=/var/lib/aria2 +file-allocation=none +enable-rpc=true +rpc-secret=$ARIA2_RPC_SECRET +rpc-listen-all=true" diff --git a/seqs/aria2.sh b/seqs/aria2.sh new file mode 100755 index 0000000..5a3c6ba --- /dev/null +++ b/seqs/aria2.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +toolName=aria2 +toolDeps=aria2 +toolUser=aria2 + +# Get script working directory +# (when called from a different directory) +WDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >>/dev/null 2>&1 && pwd)" +CONFIG=0 +SCRIPT_NAME=$(basename -- $0) +SCRIPT_NAME=${SCRIPT_NAME%%.*} +CONFIG_FILE_NAME="${SCRIPT_NAME}.cfg" +CONFIG_FILE_TEMPLATE="$WDIR/${CONFIG_FILE_NAME}.example" + +aptOpt= + +step_config() { + #echo "Called once before executing steps." + ## e.g. to source a config file manually: + #. "$CONFIG_FILE" + ## or to use sequencer api with global config file: + initSeqConfig "$CONFIG_FILE_NAME" "$CONFIG_FILE_TEMPLATE" + ## or to use sequencer api with profile config file support: + #initSeqConfig -p "$SCRIPT_NAME" "$CONFIG_FILE_TEMPLATE" + if [ $? -eq 0 ] ; then + CONFIG=1 + else + # End if no configuration file exists + [ $DRY -eq 0 ] && exit 1 + fi + [ $QUIET -ne 0 ] && aptOpt="-y" +} + +step_1_info() { echo "Install $toolName"; } +step_1_alias() { ALIAS="install"; } +step_1() { + exe apt update + exe apt install $toolDeps $aptOpt +} + +step_2_info() { echo "Create $toolName configuration"; } +step_2() { + exe adduser --system --quiet "$toolUser" + if [ ! -e $ariaConfLoc ] ; then + exe mkdir -p "$(dirname $ariaConfLoc)" + addConf -s "$ARIA2_CONF" "$ariaConfLoc" + exe chown $toolUser:root "$ariaConfLoc" + exe chmod 770 "$ariaConfLoc" + fi +} +ariaConfLoc="/etc/aria2/aria2.conf" + + +step_3_info() { echo "Create $toolName service"; } +step_3_alias() { ALIAS="service"; } +step_3() { + addConf -s "$ariaService" "$ariaServiceLoc" + exe systemctl daemon-reload + echoseq " [I] Serive not started or enabled" +} +ariaServiceLoc="/etc/systemd/system/aria2.service" +ariaService="[Unit] +Description=Aria2 +After=network-online.target + +[Service] +User=$toolUser +Type=forking +ExecStart=/usr/bin/aria2c --conf-path=${ariaConfLoc} --daemon +ExecStop=/bin/kill -s STOP $MAINPID +Restart=on-failure + +[Install] +WantedBy=multi-user.target" + +VERSION_SEQREV=12 +. /usr/local/bin/sequencer.sh