blob: 89e9d5a06c139b0862c18ecb89600b83c6b44a6c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#!/usr/bin/bash -e
# If we find aria2 config, and $ARIA2CD_TRACKER_COMMAND is set,
# we use its output as value of `bt-tracker` in aria2 config.
# It should generate a comma seperated string, see man page of aria2 for more info.
# Do nothing if no aria2 config or $ARIA2CD_TRACKER_COMMAND is not set.
# WARNING: This script will be executed with root permission and no restriction when running as system service.
# Set $ARIA2CD_TRACKER_COMMAND wisely to prevent unexpected damage to your system.
declare ARIA2C_CONF conf="${1:-aria2.conf}"
if [[ "$1" == "${1#/}" ]]
then
declare directory
for directory in "$HOME/.aria2" "${XDG_CONFIG_HOME:-$HOME/.config}/aria2"
do
if [[ -e "$directory/$conf" ]]
then
ARIA2C_CONF="$directory/$conf"
break
fi
done
if [[ -z "$ARIA2C_CONF" ]]
then
echo "Unable to find aria2c config file."
exit 1
fi
else
ARIA2C_CONF="$1"
fi
unset conf directory
readonly ARIA2C_CONF
if [[ -e "$ARIA2C_CONF" ]]
then
echo "Found aria2c config: $ARIA2C_CONF."
if [[ -n "$ARIA2CD_TRACKER_COMMAND" ]]
then
if grep -q "^bt-tracker=.*" "$ARIA2C_CONF"
then
echo "Replacing bt-tracker with tracker generated by \`$ARIA2CD_TRACKER_COMMAND\`..."
declare sed_script
sed_script="$(mktemp)"
(
echo -n "s@^bt-tracker=.*@bt-tracker="
$ARIA2CD_TRACKER_COMMAND
echo "@;"
) | tr -d "\n" > "$sed_script"
sed -i -f "$sed_script" "$ARIA2C_CONF"
else
echo "No bt-tracker is set, skip updating..."
fi
else
echo "No \$ARIA2CD_TRACKER_COMMAND set, skip updating..."
fi
else
echo "No such config $ARIA2C_CONF."
exit 1
fi
|