/contrib/dialog/samples/inputmenu2

https://bitbucket.org/freebsd/freebsd-head/ · Shell · 97 lines · 84 code · 9 blank · 4 comment · 7 complexity · 426888c55a8169327b8767d860f3e013 MD5 · raw file

  1. #! /bin/sh
  2. # $Id: inputmenu2,v 1.8 2010/01/13 10:32:04 tom Exp $
  3. #
  4. # "inputmenu1" with defaultitem, help-button.
  5. . ./setup-vars
  6. backtitle="An Example for the use of --inputmenu:"
  7. ids=`id|sed -e 's/([^)]*)//g'`
  8. uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'`
  9. gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'`
  10. user="$USER"
  11. home="$HOME"
  12. returncode=0
  13. defaultitem="Username:"
  14. while test $returncode != 1 && test $returncode != 250
  15. do
  16. exec 3>&1
  17. value=`$DIALOG --clear --ok-label "Create" \
  18. --backtitle "$backtitle" \
  19. --help-button \
  20. --help-label "Script" \
  21. --default-item "$defaultitem" "$@" \
  22. --inputmenu "Originally I designed --inputmenu for a \
  23. configuration purpose. Here is a possible piece of a configuration program." \
  24. 20 60 10 \
  25. "Username:" "$user" \
  26. "UID:" "$uid" \
  27. "GID:" "$gid" \
  28. "HOME:" "$home" \
  29. 2>&1 1>&3`
  30. returncode=$?
  31. exec 3>&-
  32. case $returncode in
  33. $DIALOG_HELP)
  34. "$DIALOG" \
  35. --textbox "$0" 0 0
  36. ;;
  37. $DIALOG_CANCEL)
  38. "$DIALOG" \
  39. --clear \
  40. --backtitle "$backtitle" \
  41. --yesno "Really quit?" 10 30
  42. case $? in
  43. $DIALOG_OK)
  44. break
  45. ;;
  46. $DIALOG_CANCEL)
  47. returncode=99
  48. ;;
  49. esac
  50. ;;
  51. $DIALOG_OK)
  52. "$DIALOG" \
  53. --clear \
  54. --backtitle "$backtitle" \
  55. --msgbox "useradd \n\
  56. -d $home \n\
  57. -u $uid \n\
  58. -g $gid \n\
  59. $user" 10 40
  60. ;;
  61. $DIALOG_EXTRA)
  62. tag=`echo "$value" |sed -e 's/^RENAMED //' -e 's/:.*/:/'`
  63. item=`echo "$value" |sed -e 's/^.*:[ ]*//' -e 's/[ ]*$//'`
  64. case "$tag" in
  65. Username:)
  66. user="$item"
  67. ;;
  68. UID:)
  69. uid="$item"
  70. ;;
  71. GID:)
  72. gid="$item"
  73. ;;
  74. HOME:)
  75. home="$item"
  76. ;;
  77. *)
  78. tag=
  79. ;;
  80. esac
  81. test -n "$tag" && defaultitem="$tag"
  82. ;;
  83. $DIALOG_ESC)
  84. echo "ESC pressed."
  85. break
  86. ;;
  87. esac
  88. done