/contrib/dialog/samples/inputmenu
https://bitbucket.org/freebsd/freebsd-head/ · #! · 60 lines · 54 code · 6 blank · 0 comment · 0 complexity · e04661086e4cbb9ee8760277beb047d6 MD5 · raw file
- #! /bin/bash
- # $Id: inputmenu,v 1.10 2010/01/13 10:29:22 tom Exp $
- # 2002 - written by Tobias Rittweiler <tobrit@freebits.de>
- . ./setup-vars
- user="$USER" ; uid="$UID" ;
- gid="$GROUPS" ; home="$HOME" ;
- while [ ${returncode:-99} -ne 1 -a ${returncode:-99} -ne 250 ]; do
- exec 3>&1
- value=$("$DIALOG" --clear --ok-label "Create" \
- --backtitle "An Example for the use of --inputmenu:" "$@" \
- --inputmenu "Originally I designed --inputmenu for a \
- configuration purpose. Here is a possible piece of a configuration program. \
- " 20 50 10 \
- "Username:" "$user" \
- "UID:" "$uid" \
- "GID:" "$gid" \
- "HOME:" "$home" \
- 2>&1 1>&3 )
- returncode=$?
- exec 3>&-
- case $returncode in
- $DIALOG_CANCEL)
- "$DIALOG" --clear --backtitle "An Example for the use of --inputmenu:" \
- --yesno "Really quit?" 10 30
- case $? in
- $DIALOG_OK) break;;
- $DIALOG_CANCEL) returncode=99;;
- esac
- ;;
- $DIALOG_OK)
- "$DIALOG" --clear --backtitle "An Example for the use of --inputmenu:" \
- --msgbox "useradd \n\
- -d $home \n\
- -u $uid \n\
- -g $gid \n\
- $user" 10 40
- ;;
- $DIALOG_EXTRA)
- value="${value:8:${#value}}"
- tag="${value%:*}"
- item="${value#*: }"
- case "$tag" in
- Username) user="$item";;
- UID) uid="$item";;
- GID) gid="$item";;
- HOME) home="$item";;
- esac
- ;;
- $DIALOG_ESC)
- echo "ESC pressed."
- break
- ;;
- esac
- done