diff options
Diffstat (limited to 'usr.sbin/bsdconfig/share/packages')
-rwxr-xr-x | usr.sbin/bsdconfig/share/packages/packages.subr | 49 |
1 files changed, 42 insertions, 7 deletions
diff --git a/usr.sbin/bsdconfig/share/packages/packages.subr b/usr.sbin/bsdconfig/share/packages/packages.subr index 28ed7f1..d9356c3 100755 --- a/usr.sbin/bsdconfig/share/packages/packages.subr +++ b/usr.sbin/bsdconfig/share/packages/packages.subr @@ -603,18 +603,53 @@ f_package_review() --menu \"\$prompt\" \ $height $width $rows \ $menu_list \ - 2> /dev/null - local retval=$? + 2> /dev/null || return $? + # Return if the user pressed ESC or chose Cancel/No # - # XXX - # - f_show_msg "Coming soon..." + # Process each of the selected packages: + # + First, process dependencies. + # + Second, process packages marked for Install. + # + Third, process packages marked for Re-install. + # + Finally, process packages marked for Uninstall. # + for package in $SELECTED_PACKAGES; do + mark= + f_str2varname "$package" varpkg + f_getvar _mark_$varpkg mark + [ "$mark" = "D" ] || continue + # XXX Install dependency + f_package_deselect "$package" + done + for package in $SELECTED_PACKAGES; do + mark= + f_str2varname "$package" varpkg + f_getvar _mark_$varpkg mark + [ "$mark" = "I" ] || continue + # XXX Install package + f_package_deselect "$package" + done + for package in $SELECTED_PACKAGES; do + mark= + f_str2varname "$package" varpkg + f_getvar _mark_$varpkg mark + [ "$mark" = "R" ] || continue + # XXX Re-install package + f_package_deselect "$package" + done + for package in $SELECTED_PACKAGES; do + mark= + f_str2varname "$package" varpkg + f_getvar _mark_$varpkg mark + [ "$mark" = "U" ] || continue + # XXX Uninstall package + f_package_deselect "$package" + done + # XXX - # + f_show_msg "Coming soon..." - return $retval + return $SUCCESS } # f_package_config |