testing: convert argument parser to sub-parsers (bug 1363509); r?glob draft
authorGregory Szorc <gps@mozilla.com>
Tue, 09 May 2017 13:28:36 -0700
changeset 11322 0d1b52cd638e95f20c82a23ddf1870447472946c
parent 11321 9e6b71ec1df0864a4ad875605f3ce9d0422a487c
child 11323 d10ec339d25a0a97e4eea80a1bcca25c13d3bbc6
push id1719
push userbmo:gps@mozilla.com
push dateSat, 24 Jun 2017 00:30:23 +0000
reviewersglob
bugs1363509
testing: convert argument parser to sub-parsers (bug 1363509); r?glob This will allow us to add per-environment arguments to control behavior. MozReview-Commit-ID: 3UETL2EQy55
create-environment
--- a/create-environment
+++ b/create-environment
@@ -14,22 +14,27 @@ sys.path.insert(0, os.path.join(HERE, 't
 from vcttesting.environment import (
     create_hgdev,
     create_vcssync,
 )
 
 
 def main():
     parser = argparse.ArgumentParser()
-    parser.add_argument('name', choices=('hgdev', 'vcssync',),
-                        help='Which environment to create')
+    subparsers = parser.add_subparsers(title='environment', dest='environment')
+
+    sp = subparsers.add_parser('hgdev',
+                               help='Mercurial hooks and extensions')
+
+    sp = subparsers.add_parser('vcssync',
+                               help='Version control synchronization')
 
     args = parser.parse_args()
 
-    env = args.name
+    env = args.environment
 
     if env == 'hgdev':
         info = create_hgdev()
     elif env == 'vcssync':
         info = create_vcssync()
     else:
         raise Exception('unhandled environment: %s' % env)