[packages] aiccu: Rework init script
git-svn-id: svn://svn.openwrt.org/openwrt/packages@28726 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
6d1ade36a1
commit
6a9bf1e4d4
@ -1,52 +1,77 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2006 OpenWrt.org
|
||||
# Copyright (C) 2006-2011 OpenWrt.org
|
||||
START=51
|
||||
|
||||
config_cb() {
|
||||
local cfg_type="$1"
|
||||
local cfg_name="$2"
|
||||
add_config_bool() {
|
||||
local section="$1"
|
||||
local option="$2"
|
||||
local value="$3"
|
||||
local default="$4"
|
||||
local _val
|
||||
|
||||
case "$cfg_type" in
|
||||
aiccu)
|
||||
append cfgs_sections "$cfg_name" "$N"
|
||||
;;
|
||||
esac
|
||||
config_get_bool _val "$section" "$option" "$default"
|
||||
[ "$_val" -gt 0 ] && _val="true" || _val="false"
|
||||
append args "$3 $_val" "\n"
|
||||
}
|
||||
|
||||
add_config() {
|
||||
local section="$1"
|
||||
local option="$2"
|
||||
local value="$3"
|
||||
local _val
|
||||
|
||||
config_get _val "$section" "$option"
|
||||
[ -n "$_val" ] && append args "$3 $_val" "\n"
|
||||
}
|
||||
|
||||
start_instance() {
|
||||
local cfg="$1"
|
||||
CFGFILE="/var/etc/aiccu-${cfg}.conf"
|
||||
PIDFILE="/var/run/aiccu-${cfg}.pid"
|
||||
args=""
|
||||
|
||||
add_config "$cfg" username username
|
||||
add_config "$cfg" password password
|
||||
add_config "$cfg" server server
|
||||
add_config "$cfg" protocol protocol
|
||||
add_config "$cfg" interface ipv6_interface
|
||||
add_config "$cfg" tunnel_id tunnel_id
|
||||
add_config_bool "$cfg" requiretls requiretls 0
|
||||
add_config_bool "$cfg" defaultroute defaultroute 1
|
||||
add_config_bool "$cfg" nat behindnat 1
|
||||
add_config_bool "$cfg" heartbeat makebeats 1
|
||||
append args "daemonize true" "\n"
|
||||
append args "pidfile $PIDFILE" "\n"
|
||||
|
||||
mkdir -p /var/run
|
||||
echo -e "$args" > "$CFGFILE"
|
||||
|
||||
config_get_bool enabled "$cfg" enabled '1'
|
||||
[ "$enabled" -gt 0 ] && aiccu start "$CFGFILE"
|
||||
}
|
||||
|
||||
stop_instance() {
|
||||
local cfg="$1"
|
||||
aiccu stop /tmp/run/aiccu-"$cfg".conf
|
||||
}
|
||||
|
||||
restart_instance() {
|
||||
local cfg="$1"
|
||||
stop_instance "$cfg"
|
||||
start_instance "$cfg"
|
||||
}
|
||||
|
||||
start() {
|
||||
config_load aiccu
|
||||
for cfgs_section in $cfgs_sections; do
|
||||
config_get username $cfgs_section username
|
||||
config_get password $cfgs_section password
|
||||
config_get server $cfgs_section server
|
||||
config_get protocol $cfgs_section protocol
|
||||
config_get interface $cfgs_section interface
|
||||
config_get tunnel_id $cfgs_section tunnel_id
|
||||
config_get_bool requiretls $cfgs_section requiretls 0
|
||||
config_get_bool defaultroute $cfgs_section defaultroute 1
|
||||
config_get_bool nat $cfgs_section nat 1
|
||||
config_get_bool heartbeat $cfgs_section heartbeat 1
|
||||
mkdir -p /tmp/run
|
||||
echo "username $username" > /tmp/run/aiccu-${cfgs_section}.conf
|
||||
echo "password $password" >> /tmp/run/aiccu-${cfgs_section}.conf
|
||||
[ -n "$server" ] && echo "server $server" >> /tmp/run/aiccu-${cfgs_section}.conf
|
||||
[ -n "$protocol" ] && echo "protocol $protocol" >> /tmp/run/aiccu-${cfgs_section}.conf
|
||||
[ -n "$interface" ] && echo "ipv6_interface $interface" >> /tmp/run/aiccu-${cfgs_section}.conf
|
||||
[ -n "$tunnel_id" ] && echo "tunnel_id $tunnel_id" >> /tmp/run/aiccu-${cfgs_section}.conf
|
||||
[ "$requiretls" = "1" ] && echo "requiretls true" >> /tmp/run/aiccu-${cfgs_section}.conf
|
||||
[ "$defaultroute" != "1" ] && echo "defaultroute false" >> /tmp/run/aiccu-${cfgs_section}.conf
|
||||
[ "$nat" = "1" ] && echo "behindnat true" >> /tmp/run/aiccu-${cfgs_section}.conf
|
||||
[ "$heartbeat" != "1" ] && echo "makebeats false" >> /tmp/run/aiccu-${cfgs_section}.conf
|
||||
echo 'daemonize true' >> /tmp/run/aiccu-${cfgs_section}.conf
|
||||
echo "pidfile /var/run/aiccu-${cfgs_section}.pid" >> /tmp/run/aiccu-${cfgs_section}.conf
|
||||
|
||||
aiccu start /tmp/run/aiccu-$cfgs_section.conf
|
||||
done
|
||||
config_foreach start_instance aiccu
|
||||
}
|
||||
|
||||
stop() {
|
||||
config_load aiccu
|
||||
for cfgs_section in $cfgs_sections; do
|
||||
aiccu stop /tmp/run/aiccu-$cfgs_section.conf
|
||||
done
|
||||
config_foreach stop_instance aiccu
|
||||
}
|
||||
|
||||
restart() {
|
||||
config_load aiccu
|
||||
config_foreach restart_instance aiccu
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user