svn commit: r251758 - head/usr.sbin/bsdconfig/share/packages

Devin Teske dteske at FreeBSD.org
Fri Jun 14 19:35:31 UTC 2013


Author: dteske
Date: Fri Jun 14 19:35:30 2013
New Revision: 251758
URL: http://svnweb.freebsd.org/changeset/base/251758

Log:
  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.

Modified:
  head/usr.sbin/bsdconfig/share/packages/packages.subr

Modified: head/usr.sbin/bsdconfig/share/packages/packages.subr
==============================================================================
--- head/usr.sbin/bsdconfig/share/packages/packages.subr	Fri Jun 14 19:26:32 2013	(r251757)
+++ head/usr.sbin/bsdconfig/share/packages/packages.subr	Fri Jun 14 19:35:30 2013	(r251758)
@@ -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


More information about the svn-src-head mailing list