#!/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 debug 10 "main: sof" # 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") [ $# -ge 2 ] || usage LOGIN="$1" shift unset GROUPS # GROUPS is a bash builtin until unassigned GROUPS="$@" echo "LOGIN=$LOGIN, GROUPS=$GROUPS" # Sanity checks and derivations id $LOGIN > /dev/null 2>&1 || error "$LOGIN: no such login" for GROUP in $GROUPS; do getent group $GROUP > /dev/null 2>&1 || error "$GROUP: no such group" done # Guts usermod -a -G ${GROUPS// /,} $LOGIN } usage() { echo "Usage: $PROGNAME @[@...]" >&2; exit 1; } main "$@"