svn commit: r206250 - user/dougb/portmaster

Doug Barton dougb at FreeBSD.org
Tue Apr 6 05:53:54 UTC 2010


Author: dougb
Date: Tue Apr  6 05:53:54 2010
New Revision: 206250
URL: http://svn.freebsd.org/changeset/base/206250

Log:
  For the command line options -d/-D and -b/-B, allow the command line
  version to override values the user has in ~/.portmaster rc
  
  For the -F/-G conflict, just unset -G.

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Tue Apr  6 05:52:22 2010	(r206249)
+++ user/dougb/portmaster/portmaster	Tue Apr  6 05:53:54 2010	(r206250)
@@ -36,6 +36,8 @@ if [ -z "$PM_PARENT_PID" ]; then
 	[ -r "$HOME/.portmasterrc" ] && . $HOME/.portmasterrc
 	set +o allexport
 
+	my_environment=`set`
+
 	# If we are already root, unset this to avoid potential conflict
 	euid=`ps -o uid $$` ; euid=${euid##* }
 	[ "$euid" -eq 0 ] && unset PM_SU_CMD PM_SU_VERBOSE
@@ -1062,20 +1064,44 @@ unset -f packages_init
 
 [ -n "$PM_EXCL" ] && export PM_EXCL
 
+test_command_line () {
+	local var envar
+
+	for var in $my_environment; do
+		case "$var" in
+		${1}=*)	envar=$1 ;;
+		${2}=*)	envar=$2 ;;
+		esac
+	done
+
+	if [ -n "$envar" ]; then
+		unset $envar
+		return 0
+	fi
+
+	return 1
+}
+
 # Error checking for getopts
 [ -n "$PM_FORCE" -a "$INTERACTIVE_UPDATE" ] &&
 	fail "The -f and -i options are mutually exclusive"
-[ -n "$BACKUP" -a -n "$NO_BACKUP" ] &&
-	fail "The -b and -B options are mutually exclusive"
-[ -n "$ALWAYS_SCRUB_DISTFILES" -a -n "$DONT_SCRUB_DISTFILES" ] &&
-	fail "The -d and -D options are mutually exclusive"
+if [ -n "$BACKUP" -a -n "$NO_BACKUP" ]; then
+	test_command_line NO_BACKUP BACKUP ||
+		fail "The -b and -B options are mutually exclusive"
+fi
+if [ -n "$ALWAYS_SCRUB_DISTFILES" -a -n "$DONT_SCRUB_DISTFILES" ]; then
+	test_command_line ALWAYS_SCRUB_DISTFILES DONT_SCRUB_DISTFILES ||
+		fail "The -d and -D options are mutually exclusive"
+fi
 [ -n "$FETCH_ONLY" -a -n "$NO_RECURSIVE_CONFIG" ] &&
-	fail "The -F and -G options are mutually exclusive"
+	unset NO_RECURSIVE_CONFIG
 [ -n "$NO_RECURSIVE_CONFIG" -a -n "$PM_PACKAGES_BUILD" ] &&
 	fail 'The --packages-build and -G options are mutually exclusive'
 [ -n "$NO_RECURSIVE_CONFIG" -a -n "$PM_DEL_BUILD_ONLY" ] &&
 	fail 'The --delete-build-only and -G options are mutually exclusive'
 
+unset my_environment
+
 #=============== Begin functions for getopts features and main ===============
 
 check_state () {


More information about the svn-src-user mailing list