summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordteske <dteske@FreeBSD.org>2013-06-14 19:35:30 +0000
committerdteske <dteske@FreeBSD.org>2013-06-14 19:35:30 +0000
commiteb35645bccd24b52e8c14d7eae48f079eac6c812 (patch)
treee283f0812d75c6bb56adca08de17dfb5f7681cd7
parentcbb41e701531df6ae5e26b908d87c35895e7faea (diff)
downloadFreeBSD-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.
-rwxr-xr-xusr.sbin/bsdconfig/share/packages/packages.subr49
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
OpenPOWER on IntegriCloud