[packages] transmission: add missing option, use service_kill in init
[openwrt/svn-archive/archive.git] / net / transmission / files / transmission.init
index cdc9ce36009b3f6ee602c345a57c7dbcfc4429c4..bdfe2e0081892951619ad9c389a1ccaeaf46acb7 100644 (file)
@@ -13,7 +13,7 @@ append_params() {
                IFS="$LIST_SEP"
                for v in $v; do
                        [ -n "$v" ] && (
-                               echo "          \""$p"\": "$v"," | sed -e 's|_|-|g' >> $config_dir/settings.json
+                               echo "\""$p"\": "$v"," | sed -e 's|_|-|g' >> $config_dir/settings.json
                        )
                done
                unset IFS
@@ -27,7 +27,8 @@ append_params_quotes() {
                IFS="$LIST_SEP"
                for v in $v; do
                        [ -n "$v" ] && (
-                               echo "          \""$p"\": \""$v"\"," | sed -e 's|/|\\/|g;s|_|-|g' >> $config_dir/settings.json
+                               echo -n "\""$p | sed -e 's|/|\\/|g;s|_|-|g' >> $config_dir/settings.json; \
+                               echo "\": \""$v"\"," >> $config_dir/settings.json
                        )
                done
                unset IFS
@@ -37,37 +38,44 @@ append_params_quotes() {
 start_service() {
        local s="$1"
        local enable=0
+       local enabled=0
+       local run_as_usr='root'
 
        # disabled?
-       config_get_bool enable "$s" enable 0
-       [ "$enable" == 0 ] && return 0
-       config_get config_dir "$s" config_dir ''
+       config_get_bool enable "$s" enable 0 # compatibility with prev version
+       config_get_bool enabled "$s" enabled 0
+       [ "$enabled" == 0 -a "$enable" == 0 ] && return 0
+       config_get config_dir "$s" config_dir '/tmp/transmission'
        mkdir -p "$config_dir"
+       config_get run_as_usr "$s" run_daemon_as_user 'root'
 
        echo "{" > $config_dir/settings.json
 
        append_params "$s" \
                alt_speed_down alt_speed_enabled alt_speed_time_begin alt_speed_time_day \
-               alt_speed_time_enabled alt_speed_time_end alt_speed_up bind_address_ipv4 \
-               bind_address_ipv6 blocklist_enabled dht_enabled encryption \
-               incomplete_dir_enabled lazy_bitfield_enabled message_level \
+               alt_speed_time_enabled alt_speed_time_end alt_speed_up blocklist_enabled \
+               cache_size_mb dht_enabled encryption idle_seeding_limit idle_seeding_limit_enabled \
+               incomplete_dir_enabled lazy_bitfield_enabled lpd_enabled message_level \
                open_file_limit peer_limit_global peer_limit_per_torrent peer_port \
                peer_port_random_high peer_port_random_low peer_port_random_on_start \
-               peer_socket_tos pex_enabled port_forwarding_enabled preallocation \
-               proxy_auth_enabled proxy_enabled proxy_port proxy_type ratio_limit \
-               ratio_limit_enabled rename_partial_files rpc_authentication_required \
-               rpc_enabled rpc_port rpc_whitelist_enabled speed_limit_down \
-               speed_limit_down_enabled speed_limit_up speed_limit_up_enabled umask \
-               upload_slots_per_torrent watch_dir watch_dir_enabled
+               peer_socket_tos pex_enabled port_forwarding_enabled preallocation prefetch_enabled \
+               ratio_limit ratio_limit_enabled rename_partial_files rpc_authentication_required \
+               rpc_enabled rpc_port rpc_whitelist_enabled script_torrent_done_enabled \
+               speed_limit_down speed_limit_down_enabled speed_limit_up \
+               speed_limit_up_enabled start_added_torrents trash_original_torrent_files \
+               umask upload_slots_per_torrent watch_dir_enabled
 
        append_params_quotes "$s" \
-               download_dir incomplete_dir proxy proxy_auth_password proxy_auth_username \
-               rpc_bind_address rpc_password rpc_username rpc_whitelist
+               blocklist_url bind_address_ipv4 bind_address_ipv6 download_dir incomplete_dir \
+               peer_congestion_algorithm rpc_bind_address rpc_password rpc_url \
+               rpc_username rpc_whitelist script_torrent_done_filename watch_dir
 
-       echo "          \""invalid-key"\": false" >> $config_dir/settings.json
+       echo "\""invalid-key"\": false" >> $config_dir/settings.json
        echo "}" >> $config_dir/settings.json
-       
-       eval "$SSD -q -b -x $BIN -S -- -g $config_dir"
+
+       chown -R $run_as_usr $config_dir
+
+       eval "$SSD -c $run_as_usr -q -b -x $BIN -S -- -g $config_dir"
 }
 
 start() {
@@ -76,7 +84,7 @@ start() {
 }
 
 stop() {
-       killall `basename $BIN`
+       service_kill $(basename $BIN)
 }
 
 restart() {