2 # Filename: grml-addtun
3 # Purpose: Program to create tun/tap devices and add them to a bridge
4 # Authors: Michael Gebetsroither <gebi@grml.org>
5 # Bug-Reports: see http://grml.org/bugs/
6 # License: This file is licensed under the GPL v2.
7 ################################################################################
8 # grml-addtun [OPTIONS] <tun0> <tun1> ...
23 Usage: "$PN_" [OPTIONS] <tun0> <tun1> ...
25 $PN_ creates persistent tun/tap devices and optionally add them to a bridge
28 -d delete the given tun devices and remove them from the bridge if given
29 -u <user> this user should be able to use the tun device
30 -g <group> this group should be able to use the tun device
31 -b <bridge> if given, all tun/tap devices are added/removed from the bridge
32 bridge is created if not allready existent
37 function fromCmdline()
42 while (( $# != 0 )); do
54 if [[ $OPT_USER_ != '' ]]; then args_="$args_ -u $OPT_USER_"; fi
55 if [[ $OPT_GROUP_ != '' ]]; then args_="$args_ -u $OPT_GROUP_"; fi
57 if [[ $OPT_BRIDGE_ != '' ]]; then
58 brctl showmacs "$OPT_BRIDGE_" &>/dev/null || brctl addbr "$OPT_BRIDGE_"
59 brctl addif "$OPT_BRIDGE_" "$1"
65 if [[ $OPT_BRIDGE_ != '' ]]; then
66 brctl delif "$OPT_BRIDGE_" "$1"
76 while getopts "du:g:b:h" opt; do
79 u) OPT_USER_="$OPTARG" ;;
80 g) OPT_GROUP_="$OPTARG" ;;
81 b) OPT_BRIDGE_="$OPTARG" ;;
82 h) printUsage; exit 0 ;;
83 ?) printUsage; exit 1 ;;
86 shift $(($OPTIND - 1))
88 if [[ $OPT_DEL_ == 'false' ]]; then
89 if [[ $OPT_BRIDGE_ != '' ]]; then
90 brctl showmacs "$OPT_BRIDGE_" &>/dev/null || brctl addbr "$OPT_BRIDGE_"
92 fromCmdline "createTun" "$@"
94 fromCmdline "trashTun" "$@"
95 if [[ $OPT_BRIDGE_ != '' ]]; then
96 brctl showmacs "$OPT_BRIDGE_" &>/dev/null && brctl delbr "$OPT_BRIDGE_"