From 5e9d53ef29710380368b60c82e146c5d82235e12 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 16 Jul 2023 07:43:04 +0200 Subject: Merging upstream version 0.16.5. Signed-off-by: Daniel Baumann --- gita/__main__.py | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'gita/__main__.py') diff --git a/gita/__main__.py b/gita/__main__.py index 4cc0e1e..3d091c6 100644 --- a/gita/__main__.py +++ b/gita/__main__.py @@ -149,10 +149,20 @@ def f_info(args: argparse.Namespace): def f_clone(args: argparse.Namespace): + + if args.dry_run: + if args.from_file: + for url, repo_name, abs_path in utils.parse_clone_config(args.clonee): + print(f"git clone {url} {abs_path}") + else: + print(f"git clone {args.clonee}") + return + if args.directory: path = args.directory else: path = Path.cwd() + if not args.from_file: subprocess.run(["git", "clone", args.clonee], cwd=path) return @@ -169,9 +179,15 @@ def f_clone(args: argparse.Namespace): ) -def f_freeze(_): - # TODO: filter context +def f_freeze(args): repos = utils.get_repos() + ctx = utils.get_context() + if args.group is None and ctx: + args.group = ctx.stem + group_repos = None + if args.group: # only display repos in this group + group_repos = utils.get_groups()[args.group]["repos"] + repos = {k: repos[k] for k in group_repos if k in repos} seen = {""} for name, prop in repos.items(): path = prop["path"] @@ -460,6 +476,12 @@ def main(argv=None): description="print all repo information", help="print all repo information", ) + p_freeze.add_argument( + "-g", + "--group", + choices=utils.get_groups(), + help="freeze repos in the specified group", + ) p_freeze.set_defaults(func=f_freeze) p_clone = subparsers.add_parser( @@ -487,6 +509,12 @@ def main(argv=None): action="store_true", help="clone repo(s) in their original paths", ) + p_clone.add_argument( + "-n", + "--dry-run", + action="store_true", + help="If set, show command without execution", + ) p_clone.set_defaults(func=f_clone) p_rename = subparsers.add_parser( -- cgit v1.2.3