From: Matheus Afonso Martins Moreira via GitGitGadget Date: Sun, 28 Apr 2024 22:30:59 GMT Subject: [PATCH 11/13] url-parse: output URL components selected by user Message-ID: <4e93509c80f944b2d10c6d62853cecb78aa6a464.1714343461.git.gitgitgadget@gmail.com> In-Reply-To: From: Matheus Afonso Martins Moreira Parse the specified git URL component from each of the given git URLs and print them to standard output, one per line. Signed-off-by: Matheus Afonso Martins Moreira --- builtin/url-parse.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/builtin/url-parse.c b/builtin/url-parse.c index ab996eadf38..6c1a8676bad 100644 --- a/builtin/url-parse.c +++ b/builtin/url-parse.c @@ -102,6 +102,8 @@ static char *extract(enum url_component component, struct url_info *info) int cmd_url_parse(int argc, const char **argv, const char *prefix) { struct url_info info; + enum url_component selected = URL_NONE; + char *extracted; int i; argc = parse_options(argc, argv, prefix, @@ -109,8 +111,20 @@ int cmd_url_parse(int argc, const char **argv, const char *prefix) builtin_url_parse_usage, 0); + if (component_arg) + selected = get_component_or_die(component_arg); + for (i = 0; i < argc; ++i) { parse_or_die(argv[i], &info); + + if (selected != URL_NONE) { + extracted = extract(selected, &info); + if (extracted) { + puts(extracted); + free(extracted); + } + } + free(info.url); } -- gitgitgadget