diff options
-rwxr-xr-x | apps/patchwork/bin/update-committed-patches.py | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/apps/patchwork/bin/update-committed-patches.py b/apps/patchwork/bin/update-committed-patches.py index 1e3c6eb..d53cc8b 100755 --- a/apps/patchwork/bin/update-committed-patches.py +++ b/apps/patchwork/bin/update-committed-patches.py @@ -9,6 +9,7 @@ # accepted into sub-maintainer/custodian branches will only be marked as # accepted once they reach the master branch. +import argparse import os import sys @@ -36,6 +37,14 @@ from patchwork.utils import ( def main(): + parser = argparse.ArgumentParser( + description='Find patches that have been committed upstream') + parser.add_argument('project', nargs='?', + help='only check on specific project') + parser.add_argument('commit_id', nargs='*', + help='only check on given commit') + args = parser.parse_args() + if settings.AUTH_CROWD_APPLICATION_USER is None: print >> sys.stderr, ("AUTH_CROWD_APPLICATION_USER not defined in " "settings.py.\n") @@ -46,12 +55,24 @@ def main(): settings.AUTH_CROWD_SERVER_REST_URI) cache_db = PatchworkDB() - projects = Project.objects.exclude( - Q(source_tree__isnull=True) | Q(source_tree='')) + if args.project: + projects = Project.objects.filter(linkname=args.project) + else: + projects = Project.objects.exclude( + Q(source_tree__isnull=True) | Q(source_tree='')) rc = 1 with cache_db: - rc = _update(crwd, projects, cache_db) + if args.commit_id: + try: + root = ensure_source_checkout_for_project(projects[0]) + _update_project_commits( + crwd, cache_db, projects[0], root, args.commit_id) + except Exception as e: + sys.stderr.write(str(e) + "\n") + rc = 1 + else: + rc = _update(crwd, projects, cache_db) return rc |