summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bsdconfig/usermgmt/share/group_input.subr
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/bsdconfig/usermgmt/share/group_input.subr')
-rw-r--r--usr.sbin/bsdconfig/usermgmt/share/group_input.subr74
1 files changed, 34 insertions, 40 deletions
diff --git a/usr.sbin/bsdconfig/usermgmt/share/group_input.subr b/usr.sbin/bsdconfig/usermgmt/share/group_input.subr
index 49986cf..1bb3819 100644
--- a/usr.sbin/bsdconfig/usermgmt/share/group_input.subr
+++ b/usr.sbin/bsdconfig/usermgmt/share/group_input.subr
@@ -65,13 +65,12 @@ f_input_group()
#
f_dialog_menu_group_list()
{
- local defaultitem="$1"
- local menu_list
- local hline="$hline_alnum_punc_tab_enter"
-
- menu_list="
+ local prompt=
+ local menu_list="
'X $msg_exit' ''
" # END-QUOTE
+ local defaultitem="$1"
+ local hline="$hline_alnum_punc_tab_enter"
# Add groups from group(5)
menu_list="$menu_list $( pw groupshow -a | awk -F: '
@@ -84,7 +83,7 @@ f_dialog_menu_group_list()
eval f_dialog_menu_size height width rows \
\"\$DIALOG_TITLE\" \
\"\$DIALOG_BACKTITLE\" \
- \"\" \
+ \"\$prompt\" \
\"\$hline\" \
$menu_list
@@ -96,7 +95,7 @@ f_dialog_menu_group_list()
--ok-label \"\$msg_ok\" \
--cancel-label \"\$msg_cancel\" \
--default-item \"\$defaultitem\" \
- --menu \"\" \
+ --menu \"\$prompt\" \
$height $width $rows \
$menu_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
@@ -171,24 +170,23 @@ f_dialog_input_group_name()
#
f_dialog_input_group_password()
{
+ local prompt1="$msg_group_password"
+ local prompt2="$msg_reenter_group_password"
local hline="$hline_alnum_punc_tab_enter"
- local msg rmsg
- msg=$( printf "$msg_group_password" )
local height1 width1
f_dialog_inputbox_size height1 width1 \
"$DIALOG_TITLE" \
"$DIALOG_BACKTITLE" \
- "$msg" \
+ "$prompt1" \
"" \
"$hline"
- rmsg=$( printf "$msg_reenter_group_password" )
local height2 width2
f_dialog_inputbox_size height2 width2 \
"$DIALOG_TITLE" \
"$DIALOG_BACKTITLE" \
- "$rmsg" \
+ "$prompt2" \
"" \
"$hline"
@@ -204,7 +202,7 @@ f_dialog_input_group_password()
--ok-label "$msg_ok" \
--cancel-label "$msg_cancel" \
--insecure \
- --passwordbox "$msg" \
+ --passwordbox "$prompt1" \
$height1 $width1 \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
@@ -221,7 +219,7 @@ f_dialog_input_group_password()
--ok-label "$msg_ok" \
--cancel-label "$msg_cancel" \
--insecure \
- --passwordbox "$rmsg" \
+ --passwordbox "$prompt2" \
$height2 $width2 \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
@@ -288,30 +286,25 @@ f_dialog_input_group_gid()
#
f_dialog_input_group_members()
{
- local menu_choice retval _input="$1"
- local msg="$msg_group_members:"
- local hline="$hline_num_arrows_tab_enter"
- local user
- local menu_list
- local all_users_valid
- local _group_members
- local checklist_users
-
- menu_list="
+ local _input="$1"
+ local prompt="$msg_group_members:"
+ local menu_list="
'X' '$msg_continue'
'1' '$msg_select_group_members_from_list'
'2' '$msg_enter_group_members_manually'
" # END-QUOTE
+ local defaultitem=
+ local hline="$hline_num_arrows_tab_enter"
- local menu_choice defaultitem=
local mheight mwidth mrows
eval f_dialog_menu_size mheight mwidth mrows \
\"\$DIALOG_TITLE\" \
\"\$DIALOG_BACKTITLE\" \
- \"\$msg\" \
+ \"\$prompt\" \
\"\$hline\" \
$menu_list
+ local menu_choice retval
while :; do
menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
@@ -320,7 +313,7 @@ f_dialog_input_group_members()
--ok-label \"\$msg_ok\" \
--cancel-label \"\$msg_cancel\" \
--default-item \"\$defaultitem\" \
- --menu \"\$msg\" \
+ --menu \"\$prompt\" \
$mheight $mwidth $mrows \
$menu_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
@@ -333,19 +326,20 @@ f_dialog_input_group_members()
# Return if user has either pressed ESC or chosen Cancel/No
[ $retval -eq $SUCCESS ] || return $retval
+ local _group_members
case "$menu_choice" in
X) # Exit
break ;;
1) # Select Group Members from a list
- user_list=$( pw usershow -a | awk -F: '
- !/^[[:space:]]*(#|$)/ { printf "%s\n", $1 }' )
- checklist_users=
- for user in $user_list; do
- checklist_users="$checklist_users $user \"\""
+ local user check_list=
+ for user in $( pw usershow -a |
+ awk -F: '!/^[[:space:]]*(#|$)/{print $1}'
+ ); do
+ # Format of a checklist entry: tag item status
if echo "$_input" | grep -q "\<$user\>"; then
- checklist_users="$checklist_users on"
+ check_list="$check_list $user '' on"
else
- checklist_users="$checklist_users off"
+ check_list="$check_list $user '' off"
fi
done
@@ -353,9 +347,9 @@ f_dialog_input_group_members()
eval f_dialog_checklist_size cheight cwidth crows \
\"\$DIALOG_TITLE\" \
\"\$DIALOG_BACKTITLE\" \
- \"\" \
+ \"\$prompt\" \
\"\$hline\" \
- $checklist_users
+ $check_list
_group_members=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
@@ -363,9 +357,9 @@ f_dialog_input_group_members()
--hline \"\$hline\" \
--ok-label \"\$msg_ok\" \
--cancel-label \"\$msg_cancel\" \
- --checklist \"\$msg\" \
+ --checklist \"\$prompt\" \
$cheight $cwidth $crows \
- $checklist_users \
+ $check_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
) || continue
# Return to previous menu if user either
@@ -383,9 +377,9 @@ f_dialog_input_group_members()
_input="$_group_members"
;;
2) # Enter Group Members manually
- msg="$msg_group_members ($msg_separated_by_commas)"
+ local p="$msg_group_members ($msg_separated_by_commas)"
- f_dialog_input _group_members "$msg" "$_input" \
+ f_dialog_input _group_members "$p" "$_input" \
"$hline_num_tab_enter" || continue
# Return to previous menu if user either
# pressed ESC or chose Cancel/No
OpenPOWER on IntegriCloud