Changeset 29180


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

packages/deluge: use new service functions, add a 'group' config option for holding gid

Location:
packages/net/deluge
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • packages/net/deluge/Makefile

    r28470 r29180  
    1010PKG_NAME:=deluge 
    1111PKG_VERSION:=1.2.0 
    12 PKG_RELEASE:=2 
     12PKG_RELEASE:=3 
    1313 
    1414PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 
  • packages/net/deluge/files/deluge.config

    r20178 r29180  
    11config global deluged 
    2         option 'user' 'deluge:deluge' 
     2        option 'user' 'deluge' 
     3        option 'group' 'deluge' 
    34        option 'home' '' 
    45        option 'options' '' 
  • packages/net/deluge/files/deluge.init

    r20178 r29180  
    11#!/bin/sh /etc/rc.common 
    2 # Copyright (C) 2010 OpenWrt.org 
     2# Copyright (C) 2010-2011 OpenWrt.org 
    33# Copyright (C) 2010 Alexander Sulfrian 
    44 
    5 NAME=deluge 
    6 PIDFILE=/var/run/deluged.pid 
    75START=50 
    86STOP=50 
    97 
    10 load_config() 
    11 { 
    12         config_get_bool enabled $1 enabled 0 
    13         [ "${enabled}" -eq 0 ] && return 1 
     8SERVICE_DAEMONIZE=1 
     9SERVICE_WRITE_PID=1 
     10SERVICE_PID_FILE="/var/run/deluged.pid" 
    1411 
    15         config_get user $1 user 
    16         if [ "${user}" == "" ]; then 
    17                 echo "Please check your uci config. User for '$1' should not be empty." 
     12error() { 
     13        echo "${initscript}:" "$@" 1>&2 
     14} 
     15 
     16section_enabled() { 
     17        config_get_bool enabled "$1" 'enabled' 0 
     18        [ $enabled -gt 0 ] 
     19} 
     20 
     21start_instance() { 
     22        local s="$1" 
     23 
     24        section_enabled "$s" || return 1 
     25 
     26        config_get uid "$s" 'user' 
     27        [ -n "$uid" ] || { 
     28                error "user is not set" 
    1829                return 1 
     30        } 
     31        user_exists $uid || { 
     32                error "user '$uid' dos not exist" 
     33                return 1 
     34        } 
     35 
     36        config_get gid "$s" 'group' 
     37        [ -n "$gid" ] || { 
     38                error "group is not set" 
     39                return 1 
     40        } 
     41        group_exists $gid || { 
     42                error "group '$gid' dos not exist" 
     43                return 1 
     44        } 
     45 
     46        config_get home "$s" 'home' 
     47        [ -n "$home" ] || { 
     48                home=$(grep "^${user}:" /etc/passwd | cut -d ':' -f 6) 
    1949        fi 
     50        [ -d "$home" ] || { 
     51                error "home directory '$home' for user '$uid' dos not exist" 
     52                return 1 
     53        } 
    2054 
    21         username=$(echo ${user} | cut -d ':' -f 1) 
    22         group=$(echo ${user} | cut -d ':' -f 2) 
     55        config_get options "$s" 'options' 
    2356 
    24         if ! $(cut -d ':' -f 1 /etc/passwd | grep -sq "${username}"); then 
    25                 echo "Please check your uci config. User for '$1' should exist." 
    26                 return 1 
    27         fi 
     57        HOME="$home" \ 
     58        SERVICE_UID="$uid" \ 
     59        SERVICE_GID="$gid" \ 
     60        service_start /usr/bin/python2.6 /usr/bin/deluged --do-not-daemonize $options 
     61} 
    2862 
    29         if [ "${group}" != "" ]; then 
    30                 if ! $(cut -d ':' -f 1 /etc/passwd | grep -sq "${group}"); then 
    31                         echo "Please check your uci config. Group for '$1' should exist." 
    32                         return 1 
    33                 fi 
    34         fi 
     63stop_instance() { 
     64        local s="$1" 
     65 
     66        section_enabled "$s" || return 1 
     67 
     68        config_get uid "$s" 'user' 
     69        config_get gid "$s" 'group' 
     70 
     71        SERVICE_UID="$uid" \ 
     72        SERVICE_GID="$gid" \ 
     73        service_stop /usr/bin/python2.6 
    3574} 
    3675 
    3776start() 
    3877{ 
    39         config_load "${NAME}" 
    40         load_config deluged || return $? 
    41  
    42         config_get options deluged options 
    43  
    44         config_get home deluged home 
    45         if [ "${home}" == "" ]; then 
    46                 home=$(grep "^${username}:" /etc/passwd | cut -d ':' -f 6) 
    47         fi 
    48  
    49         HOME="${home}" /sbin/start-stop-daemon -S -u "${username}" \ 
    50                 -p "${PIDFILE}" -b -m -x "/usr/bin/python2.6" -a deluged \ 
    51                 -c "${user}" -- --do-not-daemonize ${options} 
     78        config_load 'deluged' 
     79        config_foreach start_instance 'deluged' 
    5280} 
    5381 
    5482stop() 
    5583{ 
    56         config_load "${NAME}" 
    57         load_config deluged || return $? 
    58  
    59         /sbin/start-stop-daemon -K -u "${username}" -n deluged -p "${PIDFILE}" 
     84        config_load 'deluged' 
     85        config_foreach stop_instance 'deluged' 
    6086} 
Note: See TracChangeset for help on using the changeset viewer.