#!/bin/bash # $HeadURL$ $LastChangedRevision$ set -e PROGNAME=$(basename $0) # Load support functions . $(pcms-config PCMS_SHARE_PREFIX)/scripts/support.sh main() { # Defaults for options VERBOSELEVEL=2 # Process options while [ $# -ge 1 ]; do case $1 in -d) VERBOSELEVEL=$2; shift ;; --debug=*) VERBOSELEVEL=${1#*=} ;; -v|--verbose) VERBOSELEVEL=3 ;; --) shift; break ;; -*) error "main: $1: bad option" ;; *) break ;; esac shift done # Process arguments [ $# = 1 ] || usage eval set -- $(encode --decode "$1") while [ $# -ge 1 ]; do case $1 in ifname) IFNAME=$2; shift ;; type) TYPE=$2; shift ;; autoconnect) AUTOCONNECT=$2; shift ;; ip4) IP4=$2; shift ;; gw4) GW4=$2; shift ;; con-name) CON_NAME=$2; shift ;; *) error "$1: unhandled nmcli keyword" ;; esac shift done # Sanity checks and derivations for VAR in IFNAME CON_NAME TYPE; do eval "[ \"X\$$VAR\" != X ]" || error "$VAR: not set" done [[ $IFNAME =~ ^((eth|wlan|dummy)[0-6])$ ]] || error "$IFNAME: invalid device" # Clean ifdown --force --all 2>/dev/null || true ifconfig eth0 down 2>/dev/null || true ifconfig eth1 down 2>/dev/null || true ifconfig wlan0 down 2>/dev/null || true nmcli con del 'Wired connection 1' 2>/dev/null || true nmcli con del "$CON_NAME" 2>/dev/null || true # Configure but don't activate debug 10 "main: caling [nmcli conn add type $TYPE con-name $CON_NAME ifname $IFNAME ${AUTOCONNECT:+autoconnect $AUTOCONNECT} ${IP4:+ip4 $IP4} ${GW4:+gw4 $GW4}] ..." eval nmcli conn add type "$TYPE" con-name "$CON_NAME" ifname "$IFNAME" ${AUTOCONNECT:+autoconnect $AUTOCONNECT} ${IP4:+ip4 $IP4} ${GW4:+gw4 $GW4} } usage() { echo "Usage: $PROGNAME [ --file= ] " >&2; exit 1; } main "$@"