summaryrefslogtreecommitdiffstats
path: root/usr.sbin
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 /usr.sbin
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.
Diffstat (limited to 'usr.sbin')
-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