1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2010-2015 OpenWrt.org
11 local p
; local v
; local s
="$1"; shift
13 config_get v
"$s" "$p"
17 echo "\"$p\": $v," |
sed -e 's|_|-|g' >> $config_file
24 append_params_quotes
() {
25 local p
; local v
; local s
="$1"; shift
27 config_get v
"$s" "$p"
31 echo -n "\"$p" |
sed -e 's|/|\\/|g;s|_|-|g' >> $config_file; \
32 echo "\": \"$v\"," >> $config_file
40 config_get_bool enabled
"$1" enabled
0
50 local config_overwrite
51 local download_dir config_dir
56 section_enabled
"$section" ||
return 1
58 config_get config_dir
"$cfg" 'config_dir' '/var/etc/transmission'
59 config_get user
"$cfg" 'user'
60 config_get group
"$cfg" 'group'
61 config_get download_dir
"$cfg" 'download_dir' '/var/etc/transmission'
62 config_get mem_percentage
"$cfg" 'mem_percentage' '50'
63 config_get config_overwrite
"$cfg" config_overwrite
1
64 config_get nice
"$cfg" nice
0
66 local MEM
=$
(sed -ne 's!^MemTotal:[[:space:]]*\([0-9]*\) kB$!\1!p' /proc
/meminfo
)
67 if test "$MEM" -gt 1;then
68 USE
=$
(expr $MEM \
* $mem_percentage \
* 10)
71 config_file
="$config_dir/settings.json"
72 [ -d $config_dir ] ||
{
74 chmod 0755 $config_dir
76 [ -z "$user" ] || chown
-R "$user:$group" $config_dir
79 [ "$config_overwrite" == 0 ] ||
{
81 echo "{" > $config_file
83 append_params
"$cfg" \
84 alt_speed_down alt_speed_enabled alt_speed_time_begin alt_speed_time_day \
85 alt_speed_time_enabled alt_speed_time_end alt_speed_up blocklist_enabled \
86 cache_size_mb download_queue_enabled download_queue_size \
87 dht_enabled encryption idle_seeding_limit idle_seeding_limit_enabled \
88 incomplete_dir_enabled lazy_bitfield_enabled lpd_enabled message_level \
89 peer_limit_global peer_limit_per_torrent peer_port \
90 peer_port_random_high peer_port_random_low peer_port_random_on_start \
91 pex_enabled port_forwarding_enabled preallocation prefetch_enabled \
92 ratio_limit ratio_limit_enabled rename_partial_files rpc_authentication_required \
93 rpc_enabled rpc_port rpc_whitelist_enabled queue_stalled_enabled \
94 queue_stalled_minutes scrape_paused_torrents_enabled script_torrent_done_enabled \
95 seed_queue_enabled seed_queue_size \
96 speed_limit_down speed_limit_down_enabled speed_limit_up \
97 speed_limit_up_enabled start_added_torrents trash_original_torrent_files \
98 umask upload_slots_per_torrent utp_enabled scrape_paused_torrents \
99 watch_dir_enabled rpc_host_whitelist_enabled
101 append_params_quotes
"$cfg" \
102 blocklist_url bind_address_ipv4 bind_address_ipv6 download_dir incomplete_dir \
103 peer_congestion_algorithm peer_socket_tos rpc_bind_address rpc_password rpc_url \
104 rpc_username rpc_host_whitelist rpc_whitelist script_torrent_done_filename watch_dir
106 echo "\"invalid-key\": false" >> $config_file
107 echo "}" >> $config_file
111 cmdline
="transmission-daemon -g $config_dir -f"
113 procd_set_param
command $cmdline
114 procd_set_param user
$user
115 procd_set_param group
$group
116 procd_set_param nice
$nice
117 procd_set_param respawn retry
=60
119 if test -z $USE; then
120 procd_set_param limits core
="0 0"
122 procd_set_param limits core
="0 0" as
="$USE $USE"
123 logger
-t transmission
"Starting with $USE virt mem"
126 procd_add_jail transmission log
127 procd_add_jail_mount
$config_file
128 procd_add_jail_mount_rw
$download_dir
133 config_load
'transmission'
134 config_foreach transmission
'transmission'