diff options
author | dteske <dteske@FreeBSD.org> | 2013-06-14 19:35:30 +0000 |
---|---|---|
committer | dteske <dteske@FreeBSD.org> | 2013-06-14 19:35:30 +0000 |
commit | eb35645bccd24b52e8c14d7eae48f079eac6c812 (patch) | |
tree | e283f0812d75c6bb56adca08de17dfb5f7681cd7 /usr.sbin | |
parent | cbb41e701531df6ae5e26b908d87c35895e7faea (diff) | |
download | FreeBSD-src-eb35645bccd24b52e8c14d7eae48f079eac6c812.zip FreeBSD-src-eb35645bccd24b52e8c14d7eae48f079eac6c812.tar.gz |
Add skeleton processing of selected packages in the order in which they
should be processed. De-select each package as we "process" (actual
processing still pending) each package so that if we get an error, we can
return to an accurate state of selected packages.
Diffstat (limited to 'usr.sbin')
-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 |