Changeset 28726


Ignore:
Timestamp:
2011-11-03T17:05:38+01:00 (6 years ago)
Author:
acinonyx
Message:

[packages] aiccu: Rework init script

File:
1 edited

Legend:

Unmodified
Added
Removed
  • packages/ipv6/aiccu/files/aiccu.init

    r22526 r28726  
    11#!/bin/sh /etc/rc.common 
    2 # Copyright (C) 2006 OpenWrt.org 
     2# Copyright (C) 2006-2011 OpenWrt.org 
    33START=51 
    44 
    5 config_cb() { 
    6         local cfg_type="$1" 
    7         local cfg_name="$2" 
     5add_config_bool() { 
     6        local section="$1" 
     7        local option="$2" 
     8        local value="$3" 
     9        local default="$4" 
     10        local _val 
    811 
    9         case "$cfg_type" in 
    10                 aiccu) 
    11                         append cfgs_sections "$cfg_name" "$N" 
    12                 ;; 
    13         esac 
     12        config_get_bool _val "$section" "$option" "$default" 
     13        [ "$_val" -gt 0 ] && _val="true" || _val="false" 
     14        append args "$3 $_val" "\n" 
     15} 
     16 
     17add_config() { 
     18        local section="$1" 
     19        local option="$2" 
     20        local value="$3" 
     21        local _val 
     22 
     23        config_get _val "$section" "$option" 
     24        [ -n "$_val" ] && append args "$3 $_val" "\n" 
     25} 
     26 
     27start_instance() { 
     28        local cfg="$1" 
     29        CFGFILE="/var/etc/aiccu-${cfg}.conf" 
     30        PIDFILE="/var/run/aiccu-${cfg}.pid" 
     31        args="" 
     32         
     33        add_config "$cfg" username username 
     34        add_config "$cfg" password password 
     35        add_config "$cfg" server server 
     36        add_config "$cfg" protocol protocol 
     37        add_config "$cfg" interface ipv6_interface 
     38        add_config "$cfg" tunnel_id tunnel_id 
     39        add_config_bool "$cfg" requiretls requiretls 0 
     40        add_config_bool "$cfg" defaultroute defaultroute 1 
     41        add_config_bool "$cfg" nat behindnat 1 
     42        add_config_bool "$cfg" heartbeat makebeats 1 
     43        append args "daemonize true" "\n" 
     44        append args "pidfile $PIDFILE" "\n" 
     45 
     46        mkdir -p /var/run 
     47        echo -e "$args" > "$CFGFILE" 
     48 
     49        config_get_bool enabled "$cfg" enabled '1' 
     50        [ "$enabled" -gt 0 ] && aiccu start "$CFGFILE" 
     51} 
     52 
     53stop_instance() { 
     54        local cfg="$1" 
     55        aiccu stop /tmp/run/aiccu-"$cfg".conf 
     56} 
     57 
     58restart_instance() { 
     59        local cfg="$1" 
     60        stop_instance "$cfg" 
     61        start_instance "$cfg" 
    1462} 
    1563 
    1664start() { 
    1765        config_load aiccu 
    18         for cfgs_section in $cfgs_sections; do 
    19                 config_get username $cfgs_section username 
    20                 config_get password $cfgs_section password 
    21                 config_get server $cfgs_section server 
    22                 config_get protocol $cfgs_section protocol 
    23                 config_get interface $cfgs_section interface 
    24                 config_get tunnel_id $cfgs_section tunnel_id 
    25                 config_get_bool requiretls $cfgs_section requiretls 0 
    26                 config_get_bool defaultroute $cfgs_section defaultroute 1 
    27                 config_get_bool nat $cfgs_section nat 1 
    28                 config_get_bool heartbeat $cfgs_section heartbeat 1 
    29                 mkdir -p /tmp/run 
    30                 echo "username $username" > /tmp/run/aiccu-${cfgs_section}.conf 
    31                 echo "password $password" >> /tmp/run/aiccu-${cfgs_section}.conf 
    32                 [ -n "$server" ] && echo "server $server" >> /tmp/run/aiccu-${cfgs_section}.conf 
    33                 [ -n "$protocol" ] && echo "protocol $protocol" >> /tmp/run/aiccu-${cfgs_section}.conf 
    34                 [ -n "$interface" ] && echo "ipv6_interface $interface" >> /tmp/run/aiccu-${cfgs_section}.conf 
    35                 [ -n "$tunnel_id" ] && echo "tunnel_id $tunnel_id" >> /tmp/run/aiccu-${cfgs_section}.conf 
    36                 [ "$requiretls" = "1" ] && echo "requiretls true" >> /tmp/run/aiccu-${cfgs_section}.conf 
    37                 [ "$defaultroute" != "1" ] && echo "defaultroute false" >> /tmp/run/aiccu-${cfgs_section}.conf 
    38                 [ "$nat" = "1" ] && echo "behindnat true" >> /tmp/run/aiccu-${cfgs_section}.conf 
    39                 [ "$heartbeat" != "1" ] && echo "makebeats false" >> /tmp/run/aiccu-${cfgs_section}.conf 
    40                 echo 'daemonize true' >> /tmp/run/aiccu-${cfgs_section}.conf 
    41                 echo "pidfile /var/run/aiccu-${cfgs_section}.pid" >> /tmp/run/aiccu-${cfgs_section}.conf 
    42          
    43                 aiccu start /tmp/run/aiccu-$cfgs_section.conf 
    44         done 
     66        config_foreach start_instance aiccu 
    4567} 
    4668 
    4769stop() { 
    4870        config_load aiccu 
    49         for cfgs_section in $cfgs_sections; do 
    50                 aiccu stop /tmp/run/aiccu-$cfgs_section.conf 
    51         done 
     71        config_foreach stop_instance aiccu 
    5272} 
     73 
     74restart() { 
     75        config_load aiccu 
     76        config_foreach restart_instance aiccu 
     77} 
Note: See TracChangeset for help on using the changeset viewer.