/contrib/dialog/samples/inputmenu

https://bitbucket.org/freebsd/freebsd-head/ · #! · 60 lines · 54 code · 6 blank · 0 comment · 0 complexity · e04661086e4cbb9ee8760277beb047d6 MD5 · raw file

  1. #! /bin/bash
  2. # $Id: inputmenu,v 1.10 2010/01/13 10:29:22 tom Exp $
  3. # 2002 - written by Tobias Rittweiler <tobrit@freebits.de>
  4. . ./setup-vars
  5. user="$USER" ; uid="$UID" ;
  6. gid="$GROUPS" ; home="$HOME" ;
  7. while [ ${returncode:-99} -ne 1 -a ${returncode:-99} -ne 250 ]; do
  8. exec 3>&1
  9. value=$("$DIALOG" --clear --ok-label "Create" \
  10. --backtitle "An Example for the use of --inputmenu:" "$@" \
  11. --inputmenu "Originally I designed --inputmenu for a \
  12. configuration purpose. Here is a possible piece of a configuration program. \
  13. " 20 50 10 \
  14. "Username:" "$user" \
  15. "UID:" "$uid" \
  16. "GID:" "$gid" \
  17. "HOME:" "$home" \
  18. 2>&1 1>&3 )
  19. returncode=$?
  20. exec 3>&-
  21. case $returncode in
  22. $DIALOG_CANCEL)
  23. "$DIALOG" --clear --backtitle "An Example for the use of --inputmenu:" \
  24. --yesno "Really quit?" 10 30
  25. case $? in
  26. $DIALOG_OK) break;;
  27. $DIALOG_CANCEL) returncode=99;;
  28. esac
  29. ;;
  30. $DIALOG_OK)
  31. "$DIALOG" --clear --backtitle "An Example for the use of --inputmenu:" \
  32. --msgbox "useradd \n\
  33. -d $home \n\
  34. -u $uid \n\
  35. -g $gid \n\
  36. $user" 10 40
  37. ;;
  38. $DIALOG_EXTRA)
  39. value="${value:8:${#value}}"
  40. tag="${value%:*}"
  41. item="${value#*: }"
  42. case "$tag" in
  43. Username) user="$item";;
  44. UID) uid="$item";;
  45. GID) gid="$item";;
  46. HOME) home="$item";;
  47. esac
  48. ;;
  49. $DIALOG_ESC)
  50. echo "ESC pressed."
  51. break
  52. ;;
  53. esac
  54. done