summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xapps/patchwork/bin/update-committed-patches.py27
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