summaryrefslogtreecommitdiff
path: root/tools/patman/control.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/patman/control.py')
-rw-r--r--tools/patman/control.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tools/patman/control.py b/tools/patman/control.py
index 7467506dcbc..3e09b16e87b 100644
--- a/tools/patman/control.py
+++ b/tools/patman/control.py
@@ -218,6 +218,37 @@ def do_series(args, test_db=None, pwork=None, cser=None):
cser.close_database()
+def upstream(args, test_db=None):
+ """Process an 'upstream' subcommand
+
+ Args:
+ args (Namespace): Arguments to process
+ test_db (str or None): Directory containing the test database, None to
+ use the normal one
+ """
+ cser = cseries.Cseries(test_db)
+ try:
+ cser.open_database()
+ if args.subcmd == 'add':
+ cser.upstream_add(args.remote_name, args.url)
+ elif args.subcmd == 'default':
+ if args.unset:
+ cser.upstream_set_default(None)
+ elif args.remote_name:
+ cser.upstream_set_default(args.remote_name)
+ else:
+ result = cser.upstream_get_default()
+ print(result if result else 'unset')
+ elif args.subcmd == 'delete':
+ cser.upstream_delete(args.remote_name)
+ elif args.subcmd == 'list':
+ cser.upstream_list()
+ else:
+ raise ValueError(f"Unknown upstream subcommand '{args.subcmd}'")
+ finally:
+ cser.close_database()
+
+
def patchwork(args, test_db=None, pwork=None):
"""Process a 'patchwork' subcommand
Args:
@@ -288,6 +319,8 @@ def do_patman(args, test_db=None, pwork=None, cser=None):
args.patchwork_url)
elif args.cmd == 'series':
do_series(args, test_db, pwork, cser)
+ elif args.cmd == 'upstream':
+ upstream(args, test_db)
elif args.cmd == 'patchwork':
patchwork(args, test_db, pwork)
except Exception as exc: