[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdenonbeta/unsermake
From:       Stephan Kulow <coolo () kde ! org>
Date:       2005-10-05 9:06:05
Message-ID: 1128503165.588684.32215.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 467421 by coolo:

make the command line parsing a bit more clever


 M  +43 -24    __init__.py  


--- trunk/kdenonbeta/unsermake/__init__.py #467420:467421
@@ -897,16 +897,41 @@
 	
 	moduledirs = []
 
-	try:	
-		optlist, given_files = getopt.getopt(recurse_flags, 'cvhr:f:C:kij:el:nps', [
-			'create', 'add-missing', 'version', 'verbose', 'help', 'random=', 'missing-deps', 
-			'compile-jobs=', 'directory=', 'ignore-errors', 'keep-going', 'jobs=', 'just-print',
-			'print-progress', 'real-compare', 'no-real-compare', 'modules=','color','no-color'])
-	except getopt.GetoptError:
-		print "Wrong parameters."
-		usage();
-		sys.exit(2);
+	added_delim = False
 
+	commandline_vars = {}
+	eqre = re.compile('^([^=]*)=(.*)$')
+
+	optlist = []
+
+	while len(recurse_flags):
+		try:	
+			t_optlist, given_files = getopt.getopt(recurse_flags, 'cvhr:f:C:kij:el:nps', [
+				'create', 'add-missing', 'version', 'verbose', 'help', 'random=', 'missing-deps', 
+				'compile-jobs=', 'directory=', 'ignore-errors', 'keep-going', 'jobs=', 'just-print',
+				'print-progress', 'real-compare', 'no-real-compare', 'modules=','color','no-color'])
+			optlist.extend(t_optlist)
+			recurse_flags = []
+			match = eqre.match(given_files[0])
+			if match: # variable assignment on command line
+				commandline_vars[match.group(1)] = match.group(2)
+				recurse_flags.extend(given_files[1:])
+		
+		except getopt.GetoptError:
+			print "Wrong parameters."
+			usage();
+			sys.exit(2);
+
+	targets = []
+	for arg in given_files:
+		match = eqre.match(arg)
+		if match: # variable assignment on command line
+			commandline_vars[match.group(1)] = match.group(2)
+		else:
+			targets.append(arg)
+
+	# print optlist, targets, commandline_vars.keys()
+	
 	# default values
 	random_targets = 0
 	create_mode = False
@@ -1026,29 +1051,23 @@
 				sys.exit(1)
 
 		utilities._topsrcdir = os.path.abspath(os.curdir) + "/"
-		create_makefiles(given_files)
+		create_makefiles(targets)
 		return
 
 	if not os.path.exists(file_to_read):
 		print "no file", file_to_read, "present"
 		sys.exit(1)
 
-	targets = []
 	added_delim = False
 
-	eqre = re.compile('^([^=]*)=(.*)$')
-	for arg in given_files:
-		match = eqre.match(arg)
-		if match:
-			utilities.environment_vars[match.group(1)] = match.group(2)
-			os.environ[match.group(1)] = match.group(2)
-			if not added_delim:
-				makeflags += "-- "
-				add_delim = True
-			makeflags += "'%s' " % arg
-		else:
-			targets.append(arg)
-
+	for var, value in commandline_vars:
+		utilities.environment_vars[match.group(1)] = match.group(2)
+		os.environ[match.group(1)] = match.group(2)
+		if not added_delim:
+			makeflags += "-- "
+			add_delim = True
+		makeflags += "'%s=%s' " % (var,value)
+	
 	if makeflags and makeflags[-1] == ' ':
 		makeflags = makeflags[:-1]
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic