diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-05-13 22:19:20 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-05-13 22:19:20 +0300 |
commit | 9e8ed173b4cc4f1855501a7c8ffab6ffbc5bf34d (patch) | |
tree | af2161160cb205aaca7de6ceedb3b678dab3be0a /builtin | |
parent | 2e72299ec66c1963836f544fe8485853807b8f28 (diff) | |
parent | 6417cf9c21e9b3f450cd78352d19f43a4dd5a495 (diff) |
Merge branch 'ss/submodule-set-url-in-c'
Rewriting various parts of "git submodule" in C continues.
* ss/submodule-set-url-in-c:
submodule: port subcommand 'set-url' from shell to C
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/submodule--helper.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index 1a4b391c88..46c03d2a12 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -2246,6 +2246,37 @@ static int module_config(int argc, const char **argv, const char *prefix) usage_with_options(git_submodule_helper_usage, module_config_options); } +static int module_set_url(int argc, const char **argv, const char *prefix) +{ + int quiet = 0; + const char *newurl; + const char *path; + char *config_name; + + struct option options[] = { + OPT__QUIET(&quiet, N_("Suppress output for setting url of a submodule")), + OPT_END() + }; + const char *const usage[] = { + N_("git submodule--helper set-url [--quiet] <path> <newurl>"), + NULL + }; + + argc = parse_options(argc, argv, prefix, options, usage, 0); + + if (argc != 2 || !(path = argv[0]) || !(newurl = argv[1])) + usage_with_options(usage, options); + + config_name = xstrfmt("submodule.%s.url", path); + + config_set_in_gitmodules_file_gently(config_name, newurl); + sync_submodule(path, prefix, quiet ? OPT_QUIET : 0); + + free(config_name); + + return 0; +} + #define SUPPORT_SUPER_PREFIX (1<<0) struct cmd_struct { @@ -2276,6 +2307,7 @@ static struct cmd_struct commands[] = { {"is-active", is_active, 0}, {"check-name", check_name, 0}, {"config", module_config, 0}, + {"set-url", module_set_url, 0}, }; int cmd_submodule__helper(int argc, const char **argv, const char *prefix) |