1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2014-2016 nanpuyue <nanpuyue@gmail.com>
3 # Copyright (C) 2016 kuoruan <kuoruan@gmail.com>
11 local p
; local v
; local s
="$1"; shift
13 config_get v
"$s" "$p"
15 p
=$
(echo "$p" |
sed -e 's|_|-|g');
16 echo "$p=$v" >> $config_file
23 config_get_bool result
"$1" 'enabled' 0
29 config_get_bool result
"$1" "$2" 1
37 section_enabled
"$s" ||
return 1
39 config_get config_dir
"$s" 'config_dir' '/var/etc/aria2'
40 config_get dir
"$s" 'dir'
41 config_get user
"$s" 'user'
43 config_file
="$config_dir/aria2.conf"
44 session_file
="$config_dir/aria2.session"
45 dht_file
="$config_dir/dht.dat"
46 log_file
="$config_dir/aria2.log"
48 [ -d "$config_dir" ] ||
{
49 mkdir
-m 0755 -p "$config_dir"
54 mkdir
-m 0755 -p "$dir" # create download dir
58 touch "$session_file" # create session file
60 echo -e "enable-rpc=true\nrpc-allow-origin-all=true\nrpc-listen-all=true\nquiet=true" > $config_file
61 echo -e "continue=true\ninput-file=$session_file\nsave-session=$session_file" >> $config_file
63 option_disabled
"$s" 'enable_dht' ||
echo "dht-file-path=$dht_file" >> $config_file
64 option_disabled
"$s" 'enable_log' ||
{
65 [ -f "$log_file" ] && echo > $log_file # if log file exist, clear it
66 echo -e "log=$log_file" >> $config_file
69 # if user is set, change dir owner
71 chown
-R $user:$user $config_dir
72 chown
-R $user:$user $dir
76 file_allocation bt_enable_lpd enable_dht rpc_user rpc_passwd rpc_listen_port dir bt_tracker disk_cache \
77 max_overall_download_limit max_overall_upload_limit max_download_limit max_upload_limit max_concurrent_downloads \
78 max_connection_per_server min_split_size
split save_session_interval follow_torrent listen_port bt_max_peers \
79 peer_id_prefix user_agent rpc_secret log_level
81 config_list_foreach
"$s" extra_settings append_extrasettings
84 service_start
/usr
/bin
/aria2c
--conf-path="$config_file" # start service
87 append_extrasettings
() {
88 echo "$1" >> $config_file
92 logger
-t ARIA2C
'Starting aria2c service'
94 config_foreach start_instance
'aria2'
99 if [ -n "`pidof aria2c`" ]; then
100 logger
-t ARIA2C
'Shutting down aria2c service'
101 service_stop
/usr
/bin
/aria2c
107 logger
-t ARIA2C
'Restarting aria2c service'
109 sleep 2 # give time to shutdown