#!/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= seq_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 || return 1 fi quiet && aptOpt="-y" return 0 } step_1_info() { echo "Install $toolName"; } step_1_alias() { echo "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() { echo "service"; } step_3() { addConf -s "$ariaService" "$ariaServiceLoc" exe systemctl daemon-reload info "Service 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" step_10_info() { echo "Add ufw rule for rpc port 6800"; } step_10_alias() { echo "ufw"; } step_10() { exe ufw allow in on eth0 to any port 6800 proto tcp comment "Aria2 rpc" } readonly sqr_minVersion=16 . /usr/local/bin/sequencer.sh