Changeset 29179


Ignore:
Timestamp:
2011-11-16T10:44:25+01:00 (5 years ago)
Author:
nico
Message:

packages/transmission: use new service functions, rename 'run_daemon_as_user' config option to 'user'

Location:
packages/net/transmission
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • packages/net/transmission/Makefile

    r29006 r29179  
    1010PKG_NAME:=transmission 
    1111PKG_VERSION:=2.42 
    12 PKG_RELEASE:=2 
     12PKG_RELEASE:=3 
    1313 
    1414PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 
  • packages/net/transmission/files/transmission.config

    r28280 r29179  
    22        option enabled 0 
    33        option config_dir '/tmp/transmission' 
    4         option run_daemon_as_user root 
     4        #option user 'nobody' 
    55        option alt_speed_down 50 
    66        option alt_speed_enabled false 
  • packages/net/transmission/files/transmission.init

    r29006 r29179  
    11#!/bin/sh /etc/rc.common 
     2# Copyright (C) 2010-2011 OpenWrt.org 
    23 
    34START=99 
    4 BIN=/usr/bin/transmission-daemon 
    5 SSD=start-stop-daemon 
    65 
    76LIST_SEP=" 
    87" 
     8 
    99append_params() { 
    1010        local p; local v; local s="$1"; shift 
     
    1414                for v in $v; do 
    1515                        [ -n "$v" ] && ( 
    16                                 echo "\""$p"\": "$v"," | sed -e 's|_|-|g' >> $config_dir/settings.json 
     16                                echo "\""$p"\": "$v"," | sed -e 's|_|-|g' >> $config_file 
    1717                        ) 
    1818                done 
     
    2828                for v in $v; do 
    2929                        [ -n "$v" ] && ( 
    30                                 echo -n "\""$p | sed -e 's|/|\\/|g;s|_|-|g' >> $config_dir/settings.json; \ 
    31                                 echo "\": \""$v"\"," >> $config_dir/settings.json 
     30                                echo -n "\""$p | sed -e 's|/|\\/|g;s|_|-|g' >> $config_file; \ 
     31                                echo "\": \""$v"\"," >> $config_file 
    3232                        ) 
    3333                done 
     
    3636} 
    3737 
    38 start_service() { 
     38section_enabled() { 
     39        config_get_bool enabled "$1" 'enabled' 0 
     40        [ $enabled -gt 0 ] 
     41} 
     42 
     43start_instance() { 
    3944        local s="$1" 
    40         local enabled=0 
    41         local run_as_usr='root' 
     45        local user 
    4246        local open_file_limit=0 
    4347        local ulimit_files=$(ulimit -n) 
    4448 
    45         # disabled? 
    46         config_get_bool enabled "$s" enabled 0 
    47         [ "$enabled" = 0 ] && return 0 
    48         config_get config_dir "$s" config_dir '/tmp/transmission' 
    49         mkdir -p "$config_dir" 
    50         config_get run_as_usr "$s" run_daemon_as_user 'root' 
     49        section_enabled "$section" || return 1 
    5150 
    52         echo "{" > $config_dir/settings.json 
     51        config_get config_dir "$s" 'config_dir' '/var/etc/transmission' 
     52        config_get user "$s" 'user' 
     53 
     54        config_file="$config_dir/settings.json" 
     55        [ -d $config_dir ] || { 
     56                mkdir -m 0755 -p "$config_dir" 
     57                touch $config_file 
     58                [ -z "$user" ] || chown -R $user $config_dir 
     59        } 
     60 
     61        echo "{" > $config_file 
    5362 
    5463        append_params "$s" \ 
     
    7584                rpc_username rpc_whitelist script_torrent_done_filename watch_dir 
    7685 
    77         echo "\""invalid-key"\": false" >> $config_dir/settings.json 
    78         echo "}" >> $config_dir/settings.json 
     86        echo "\""invalid-key"\": false" >> $config_file 
     87        echo "}" >> $config_file 
    7988 
    80         chown -R $run_as_usr $config_dir 
    81  
    82         config_get open_file_limit "$s" open_file_limit 32 
     89        config_get open_file_limit "$s" 'open_file_limit' 32 
    8390        open_limit_files=$(($open_file_limit + 8)) 
    8491 
     
    8794        fi 
    8895 
    89         eval "$SSD -c $run_as_usr -q -b -x $BIN -S -- -g $config_dir" 
     96        SERVICE_UID="$user" \ 
     97        service_start /usr/bin/transmission-daemon -g $config_dir 
     98} 
     99 
     100stop_instance() { 
     101        local s="$1" 
     102        local user 
     103 
     104        section_enabled "$section" || return 1 
     105 
     106        config_get user "$s" 'user' 
     107 
     108        SERVICE_UID="$user" \ 
     109        service_stop /usr/bin/transmission-daemon 
    90110} 
    91111 
    92112start() { 
    93         config_load transmission 
    94         config_foreach start_service transmission 
     113        config_load 'transmission' 
     114        config_foreach start_instance 'transmission' 
    95115} 
    96116 
    97117stop() { 
    98         service_kill $(basename $BIN) 
     118        config_load 'transmission' 
     119        config_foreach stop_instance 'transmission' 
    99120} 
    100  
    101 restart() { 
    102         stop; sleep 5; start 
    103 } 
Note: See TracChangeset for help on using the changeset viewer.