aria2: Add files in order to use LuCI
* Add config file. * Add init.d file. Signed-off-by: Hsing-Wang Liao <kuoruan@gmail.com>
This commit is contained in:
parent
251c1867e6
commit
8ee05d3f05
3 changed files with 94 additions and 0 deletions
|
@ -67,6 +67,12 @@ CONFIGURE_ARGS += \
|
|||
define Package/aria2/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aria2c $(1)/usr/bin
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/aria2.init $(1)/etc/init.d/aria2
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_CONF) ./files/aria2.conf $(1)/etc/config/aria2
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,aria2))
|
||||
|
|
10
net/aria2/files/aria2.conf
Normal file
10
net/aria2/files/aria2.conf
Normal file
|
@ -0,0 +1,10 @@
|
|||
|
||||
config aria2 'main'
|
||||
option enabled '0'
|
||||
option file_allocation 'none'
|
||||
option bt_enable_lpd 'true'
|
||||
option enable_dht 'true'
|
||||
option follow_torrent 'true'
|
||||
option user 'root'
|
||||
option dir '/mnt/sda1'
|
||||
option save_session_interval '30'
|
78
net/aria2/files/aria2.init
Executable file
78
net/aria2/files/aria2.init
Executable file
|
@ -0,0 +1,78 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2014-2016 nanpuyue <nanpuyue@gmail.com>
|
||||
|
||||
START=99
|
||||
SERVICE_WRITE_PID=1
|
||||
SERVICE_DAEMONIZE=1
|
||||
|
||||
|
||||
append_params() {
|
||||
local p; local v; local s="$1"; shift
|
||||
for p in $*; do
|
||||
config_get v "$s" "$p"
|
||||
[ -n "$v" ] && (
|
||||
p=$(echo "$p" | sed -e 's|_|-|g');
|
||||
echo "$p=$v" >> $config_file
|
||||
)
|
||||
done
|
||||
}
|
||||
|
||||
section_enabled() {
|
||||
local result
|
||||
config_get_bool result "$1" 'enabled' 0
|
||||
[ $result -eq 1 ]
|
||||
}
|
||||
|
||||
option_disabled() {
|
||||
local result
|
||||
config_get_bool result "$1" "$2" 1
|
||||
[ $result -eq 0 ]
|
||||
}
|
||||
|
||||
start_instance() {
|
||||
local s="$1"
|
||||
local user
|
||||
|
||||
section_enabled "$s" || return 1
|
||||
|
||||
config_get config_dir "$s" 'config_dir' '/var/etc/aria2'
|
||||
config_get user "$s" 'user'
|
||||
|
||||
config_file="$config_dir/aria2.conf"
|
||||
session_file="$config_dir/aria2.session"
|
||||
dht_file="$config_dir/dht.dat"
|
||||
[ -d "$config_dir" ] || {
|
||||
mkdir -m 0755 -p "$config_dir"
|
||||
touch "$config_file"
|
||||
[ -z "$user" ] || chown -R $user $config_dir
|
||||
}
|
||||
touch "$session_file"
|
||||
|
||||
echo -e "enable-rpc=true\nrpc-allow-origin-all=true\nrpc-listen-all=true\nquiet=true" > $config_file
|
||||
echo -e "continue=true\ninput-file=$session_file\nsave-session=$session_file" >> $config_file
|
||||
option_disabled "$s" 'enable_dht' || echo "dht-file-path=$dht_file" >> $config_file
|
||||
|
||||
append_params "$s" \
|
||||
file_allocation bt_enable_lpd enable_dht rpc_user rpc_passwd rpc_listen_port dir bt_tracker disk_cache \
|
||||
max_overall_download_limit max_overall_upload_limit max_download_limit max_upload_limit max_concurrent_downloads \
|
||||
max_connection_per_server min_split_size split save_session_interval follow_torrent listen_port bt_max_peers \
|
||||
peer_id_prefix user_agent rpc_secret
|
||||
|
||||
config_list_foreach "$s" extra_settings append_extrasettings
|
||||
|
||||
SERVICE_UID="$user" \
|
||||
service_start /usr/bin/aria2c --conf-path="$config_file"
|
||||
}
|
||||
|
||||
append_extrasettings() {
|
||||
echo "$1" >> $config_file
|
||||
}
|
||||
|
||||
start() {
|
||||
config_load 'aria2'
|
||||
config_foreach start_instance 'aria2'
|
||||
}
|
||||
|
||||
stop() {
|
||||
service_stop /usr/bin/aria2c
|
||||
}
|
Loading…
Reference in a new issue