Index: usr.sbin/bsdinstall/scripts/adduser =================================================================== --- usr.sbin/bsdinstall/scripts/adduser +++ usr.sbin/bsdinstall/scripts/adduser @@ -26,9 +26,73 @@ # # $FreeBSD$ +BSDCFG_SHARE="/usr/share/bsdconfig" +. $BSDCFG_SHARE/common.subr || exit 1 +f_include $BSDCFG_SHARE/dialog.subr + clear + +msg_please_provide_login_group="Optional: please enter login groups." +msg_please_provide_additional_groups="Optional: please enter additional groups." + +dialog_login_group() +{ + local prompt="$msg_please_provide_login_group" + local hline= + local value="$*" + + local height width + f_dialog_inputbox_size height width \ + "$DIALOG_TITLE" "$DIALOG_BACKTITLE" "$prompt" "$value" "$hline" + + $DIALOG \ + --title "$DIALOG_TITLE" \ + --backtitle "$DIALOG_BACKTITLE" \ + --hline "$hline" \ + --ok-label "OK" \ + --no-cancel \ + --inputbox "$prompt" \ + $height $width "$value" \ + 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD +} + +dialog_additional_groups() +{ + local prompt="$msg_please_provide_additional_groups" + local hline= + local value="$*" + + local height width + f_dialog_inputbox_size height width \ + "$DIALOG_TITLE" "$DIALOG_BACKTITLE" "$prompt" "$value" "$hline" + + $DIALOG \ + --title "$DIALOG_TITLE" \ + --backtitle "$DIALOG_BACKTITLE" \ + --hline "$hline" \ + --ok-label "OK" \ + --no-cancel \ + --inputbox "$prompt" \ + $height $width "$value" \ + 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD +} + +# prompt for login group +LOGIN_GROUP=$( dialog_login_group "$LOGIN_GROUP" ) +[ $? -eq $DIALOG_CANCEL ] && exit 1 +for group in $LOGIN_GROUP; do + chroot $BSDINSTALL_CHROOT /usr/sbin/pw group add $group +done + +# prompt for additional groups +ADDITIONAL_GROUPS=$( dialog_additional_groups "$ADDITIONAL_GROUPS" ) +[ $? -eq $DIALOG_CANCEL ] && exit 1 +for group in $ADDITIONAL_GROUPS; do + chroot $BSDINSTALL_CHROOT /usr/sbin/pw group add $group +done + echo "FreeBSD Installer" echo "========================" echo "Add Users" echo -chroot $BSDINSTALL_CHROOT adduser 2>&1 +chroot $BSDINSTALL_CHROOT adduser -g "$LOGIN_GROUP" -G "$ADDITIONAL_GROUPS" 2>&1