Mercurial > hgweb.cgi > hwm
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 -