Merge "Adds <service>-api to map to openstack-api-site in Launchpad"
diff --git a/jeepyb/cmd/manage_projects.py b/jeepyb/cmd/manage_projects.py
index a05229c..a8f80f8 100644
--- a/jeepyb/cmd/manage_projects.py
+++ b/jeepyb/cmd/manage_projects.py
@@ -47,6 +47,7 @@
 
 from __future__ import print_function
 
+import argparse
 import ConfigParser
 import logging
 import os
@@ -61,7 +62,6 @@
 
 import jeepyb.gerritdb
 
-logging.basicConfig(level=logging.ERROR)
 log = logging.getLogger("manage_projects")
 
 
@@ -287,6 +287,19 @@
 
 
 def main():
+    parser = argparse.ArgumentParser(description='Manage projects')
+    parser.add_argument('-v', dest='verbose', action='store_true',
+                        help='verbose output')
+    parser.add_argument('--nocleanup', action='store_true',
+                        help='do not remove temp directories')
+    parser.add_argument('projects', metavar='project', nargs='*',
+                        help='name of project(s) to process')
+    args = parser.parse_args()
+
+    if args.verbose:
+        logging.basicConfig(level=logging.DEBUG)
+    else:
+        logging.basicConfig(level=logging.ERROR)
 
     PROJECTS_YAML = os.environ.get('PROJECTS_YAML',
                                    '/home/gerrit2/projects.yaml')
@@ -314,6 +327,8 @@
 
         for section in configs[1]:
             project = section['project']
+            if args.projects and project not in args.projects:
+                continue
             options = section.get('options', dict())
             description = section.get('description', None)
             homepage = section.get('homepage', defaults.get('homepage', None))
@@ -369,7 +384,8 @@
                     git_command(repo_path,
                                 "push --tags %s" % remote_url, env=ssh_env)
                 finally:
-                    run_command("rm -fr %s" % tmpdir)
+                    if not args.nocleanup:
+                        run_command("rm -fr %s" % tmpdir)
 
             try:
                 acl_config = section.get('acl-config',
@@ -404,7 +420,8 @@
                                         GERRIT_GITID,
                                         ssh_env)
                 finally:
-                    run_command("rm -fr %s" % tmpdir)
+                    if not args.nocleanup:
+                        run_command("rm -fr %s" % tmpdir)
     finally:
         os.unlink(ssh_env['GIT_SSH'])
 
diff --git a/requirements.txt b/requirements.txt
index 17f92bb..994ad98 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,4 @@
+argparse
 gerritlib
 MySQL-python
 paramiko