86 lines
2.1 KiB
Bash
Executable File
86 lines
2.1 KiB
Bash
Executable File
#!/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 ] && return 1
|
|
fi
|
|
[ $QUIET -ne 0 ] && aptOpt="-y"
|
|
return 0
|
|
}
|
|
|
|
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"
|
|
|
|
step_10_info() { echo "Add ufw rule for rpc port 6800"; }
|
|
step_10_alias() { ALIAS="ufw"; }
|
|
step_10() {
|
|
exe ufw allow in on eth0 to any port 6800 proto tcp comment "Aria2 rpc"
|
|
}
|
|
|
|
VERSION_SEQREV=12
|
|
. /usr/local/bin/sequencer.sh
|