xref: /freebsd/contrib/dialog/samples/inputmenu (revision 8ddb146abcdf061be9f2c0db7e391697dafad85c)
1#! /bin/sh
2# $Id: inputmenu,v 1.19 2020/11/26 00:30:23 tom Exp $
3# 2002 - written by Tobias Rittweiler <tobrit@freebits.de>
4
5. ./setup-vars
6
7user="$USER"
8uid=`id|sed -e 's/^uid=//' -e 's/(.*//'`
9gid=`id|sed -e 's/^.*gid=//' -e 's/(.*//'`
10home="$HOME"
11
12while [ "${returncode:-99}" -ne 1 ] && [ "${returncode:-99}" -ne 250 ]; do
13	exec 3>&1
14	returntext=`$DIALOG \
15		--clear --ok-label "Create" \
16		--backtitle "An Example for the use of --inputmenu:" "$@" \
17		--inputmenu "Originally I designed --inputmenu for a \
18configuration purpose. Here is a possible piece of a configuration program. \
19" 20 50 10 \
20"Username:" "$user" \
21"UID:"      "$uid" \
22"GID:"      "$gid" \
23"HOME:"     "$home" \
242>&1 1>&3 `
25	returncode=$?
26	exec 3>&-
27	case $returncode in
28	$DIALOG_CANCEL)
29		"$DIALOG" \
30			--clear --backtitle "An Example for the use of --inputmenu:" \
31			--yesno "Really quit?" 10 30
32		case $? in
33		$DIALOG_OK) break;;
34		$DIALOG_CANCEL) returncode=99;;
35		esac
36		;;
37	$DIALOG_OK)
38		"$DIALOG" \
39			--clear --backtitle "An Example for the use of --inputmenu:"  \
40			--msgbox "useradd \n\
41				-d $home \n\
42				-u $uid \n\
43				-g $gid \n\
44				$user" 10 40
45		;;
46	$DIALOG_EXTRA)
47		value=`echo "$returntext" | sed -e 's/^RENAMED //'`
48		tag=`echo "$value" | sed -e 's/:.*//'`
49		item=`echo "$value" | sed -e 's/^[^:]*:[ 	][ 	]*//'`
50
51		case "$tag" in
52		Username) user="$item" ;;
53		UID)	  uid="$item"  ;;
54		GID)	  gid="$item"  ;;
55		HOME)	  home="$item" ;;
56		esac
57		;;
58
59	*)
60		. ./report-button
61		break
62		;;
63
64	esac
65done
66