From: Michael Gebetsroither Date: Thu, 4 Oct 2007 11:08:51 +0000 (+0200) Subject: grml-addtun: added -a for automatic bridge handling X-Git-Tag: 0.1.13~16 X-Git-Url: http://git.grml.org/?p=grml-network.git;a=commitdiff_plain;h=c66ac69832b67c8b6f5a0eda4f2f4773e46796c8 grml-addtun: added -a for automatic bridge handling --- diff --git a/sbin/grml-addtun b/sbin/grml-addtun index 3b6d5b9..ac7d6a4 100755 --- a/sbin/grml-addtun +++ b/sbin/grml-addtun @@ -14,6 +14,7 @@ OPT_DEL_='false' OPT_USER_='' OPT_GROUP_='' OPT_BRIDGE_='' +OPT_AUTO_='false' function printUsage() @@ -28,7 +29,8 @@ OPTIONS: -u this user should be able to use the tun device -g this group should be able to use the tun device -b if given, all tun/tap devices are added/removed from the bridge - bridge is created if not allready existent + -a enable auto mode, eg. create the bridge if not allready existing and + delete it when empty after removing given tun devices -h this help EOT } @@ -76,12 +78,13 @@ function die() # MAIN ## -while getopts "du:g:b:h" opt; do +while getopts "du:g:b:ah" opt; do case "$opt" in d) OPT_DEL_='true' ;; u) OPT_USER_="$OPTARG" ;; g) OPT_GROUP_="$OPTARG" ;; b) OPT_BRIDGE_="$OPTARG" ;; + a) OPT_AUTO_='true' ;; h) printUsage; exit 0 ;; ?) printUsage; exit 1 ;; esac @@ -89,13 +92,13 @@ done shift $(($OPTIND - 1)) if [[ $OPT_DEL_ == 'false' ]]; then - if [[ $OPT_BRIDGE_ != '' ]]; then + if [[ $OPT_BRIDGE_ != '' && $OPT_AUTO_ == 'true' ]]; then brctl showmacs "$OPT_BRIDGE_" &>/dev/null || brctl addbr "$OPT_BRIDGE_" fi fromCmdline "createTun" "$@" else fromCmdline "trashTun" "$@" - if [[ $OPT_BRIDGE_ != '' ]]; then + if [[ $OPT_BRIDGE_ != '' && $OPT_AUTO_ == 'true' ]]; then tmp_="`brctl showmacs "$OPT_BRIDGE_" |wc -l`" if (( $tmp_ == 1 )); then brctl delbr "$OPT_BRIDGE_"