2014-10-04 19:47:02 +04:00
|
|
|
#!/usr/bin/env watchman
|
|
|
|
|
|
|
|
cfg_iface="${service_name%%.*}"
|
|
|
|
|
|
|
|
service_type='oneshot'
|
2015-01-08 12:25:38 +03:00
|
|
|
service_command='/usr/bin/ip'
|
2015-09-04 16:47:37 +03:00
|
|
|
service_args=( link set "$cfg_iface" up)
|
2014-10-04 19:47:02 +04:00
|
|
|
|
|
|
|
wait_for_iface() {
|
|
|
|
local iface="$1" timer='0' timeout='6'
|
|
|
|
|
2015-05-25 12:26:03 +03:00
|
|
|
until [[ "$(ip link show $iface up)" ]]; do
|
2015-01-19 16:59:09 +03:00
|
|
|
(( timer >= timeout )) && { return 1; }
|
|
|
|
(( timer++ ))
|
2014-10-04 19:47:02 +04:00
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2014-10-07 13:19:40 +04:00
|
|
|
start() {
|
2014-10-04 19:47:02 +04:00
|
|
|
watchman.msg "Activating the $cfg_iface interface..."
|
2014-10-07 13:19:40 +04:00
|
|
|
watchman.start
|
2014-10-04 19:47:02 +04:00
|
|
|
|
|
|
|
wait_for_iface || {
|
|
|
|
echo "Interface $cfg_iface failed to come up!"
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stop() {
|
|
|
|
watchman.msg "Deactivating the $cfg_iface interface..."
|
|
|
|
ip link set "${cfg_iface}" down
|
|
|
|
watchman.stop
|
|
|
|
}
|