changeset 4:d25225017d5f

Support for action based command invokation. IN: -
author John Schneiderman <JohnMS@CodeGNU.com>
date Mon, 21 Jul 2014 23:32:52 -0500
parents 23750425eabb
children d5991e08acb9
files src/hwm.py src/repository.py
diffstat 2 files changed, 37 insertions(+), 33 deletions(-) [+]
line wrap: on
line diff
--- a/src/hwm.py	Mon Jul 21 22:53:06 2014 -0500
+++ b/src/hwm.py	Mon Jul 21 23:32:52 2014 -0500
@@ -49,6 +49,30 @@
 		return False
 
 
+def __extract_values(args):
+	"""Pulls the creation arguments out of the command-line.
+
+	 @param[in] args	The command-line argument processor containing the
+					creation argument values.
+
+	 @return A managed repository object.
+	"""
+	import repository
+
+	managed = repository.Repository()
+	if args.repository:
+		managed.StorageName = args.repository
+
+	if args.name:
+		managed.DisplayName = args.name[0]
+
+	if args.description:
+		managed.Description = args.description[0]
+
+	if args.contact:
+		managed.Contact = args.contact[0]
+	return managed
+
 def main(args):
 	import argparse
 	import repository
@@ -59,21 +83,24 @@
 		exit(1)
 
 	parser = argparse.ArgumentParser(description='Manages HgWeb Repositories')
-	parser.add_argument("create", action="store", nargs='+', help='Creates a new HgWeb repository.')
-	parser.add_argument("repository", action="store", nargs=1, help='The storage-name for the repository.')
-	parser.add_argument("-n", "--name", action="store", nargs=1, help='The display name for the repository.')
-	parser.add_argument("-d", "--description", action="store", nargs=1, default="", help='The description for the repository.')
-	parser.add_argument("-c", "--contact", action="store", nargs=1, default="", help='The contact point for a repository.')
+	parser.add_argument("repository", action="store", help='The storage-name of the repository.')
+	parser.add_argument("-a", "--action", action="store", nargs=1, type=str, choices=["create"], help='Performs an action upon a managed HgWeb repository.')
+	parser.add_argument("-n", "--name", action="store", nargs='?', default="", help='The display name of the repository.')
+	parser.add_argument("-d", "--description", action="store", nargs='?', default="", help='The description of the repository.')
+	parser.add_argument("-c", "--contact", action="store", nargs='?', default="", help='The contact point of a repository.')
 	args = parser.parse_args()
-	repo = repository.extract_values(args)
+	repo = __extract_values(args)
 
-	if args.create:
+
+	if 'create' == args.action[0]:
 		if manager.create(repo):
 			print "Success creating repository %s." % repo.StorageName
+			exit(0)
 		else:
-			print "Failure creating repository %s." % repo.StorageName
-
-	exit(0)
+			print >>sys.stderr, "Failure creating repository %s." % repo.StorageName
+			exit(1)
+	print >>sys.stderr, "Failure determine action request %s." % args.action
+	exit(2)
 
 if __name__ == "__main__":
 	import sys
--- a/src/repository.py	Mon Jul 21 22:53:06 2014 -0500
+++ b/src/repository.py	Mon Jul 21 23:32:52 2014 -0500
@@ -72,26 +72,3 @@
 		self.__displayName = None
 		self.__description = None
 		self.__contact = None
-
-def extract_values(args):
-	"""Pulls the creation arguments out of the command-line.
-
-	 @param[in] args	The command-line argument processor containing the
-					creation argument values.
-
-	 @return A managed repository object.
-	"""
-	managed = Repository()
-	if args.repository:
-		managed.StorageName = args.repository[0]
-
-	if args.name:
-		managed.DisplayName = args.name[0]
-
-	if args.description:
-		managed.Description = args.description[0]
-
-	if args.contact:
-		managed.Contact = args.contact[0]
-	return managed
-