From dd84e913b6b50b1165327f1c00c6aeaf7218e1e0 Mon Sep 17 00:00:00 2001 From: encrypt Date: Tue, 31 Mar 2015 13:30:54 +0200 Subject: [PATCH] fixes to work on openwrt --- etherswitch.sh | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/etherswitch.sh b/etherswitch.sh index 2a25623..be8515b 100755 --- a/etherswitch.sh +++ b/etherswitch.sh @@ -1,16 +1,16 @@ -#!/bin/env bash +#!/bin/sh -conf=~/.etherswitch +conf=/etc/etherswitch.rc switch_state=-1 -function check_fn { +check_fn() { type $1 &> /dev/null || { >&2 echo "$1 is undefined" exit 1 } } -function load_config { +load_config() { unset -f on_switch_close unset -f on_switch_open unset -f on_switch_toggle @@ -23,8 +23,14 @@ function load_config { exit 1 fi + if [ -z "$port" ] + then + >&2 echo "port is not set" + exit 1 + fi + # check if $device is a network device - ip link show $device > /dev/null + swconfig dev $device show > /dev/null if [ $? -eq 1 ]; then exit 1; fi check_fn "on_switch_close" @@ -42,7 +48,7 @@ load_config while : do - ip link show $device | grep -q "LOWER_UP" + swconfig dev $device port $port show | grep -q "up" current_state=$? if [ $current_state -ne $switch_state ] then @@ -55,5 +61,5 @@ do on_switch_close fi fi - sleep 0.3 + sleep 1 done