diff options
author | Brandon Williams <bmwill@google.com> | 2016-12-16 22:03:17 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-12-22 22:47:33 +0300 |
commit | f9f42560e2911a5eef9a3d463a63cfd48d54dd07 (patch) | |
tree | 4c5f441dd87ab0ed8d0d81c3be0c07a3ac19fb86 | |
parent | 5688c28d81e9103a234efeedcb0568c2c4dd0bfb (diff) |
submodules: add helper to determine if a submodule is initialized
Add the `is_submodule_initialized()` helper function to submodules.c.
`is_submodule_initialized()` performs a check to determine if the
submodule at the given path has been initialized.
Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | submodule.c | 23 | ||||
-rw-r--r-- | submodule.h | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/submodule.c b/submodule.c index ee3198dc24..edffaa186b 100644 --- a/submodule.c +++ b/submodule.c @@ -199,6 +199,29 @@ void gitmodules_config(void) } /* + * Determine if a submodule has been initialized at a given 'path' + */ +int is_submodule_initialized(const char *path) +{ + int ret = 0; + const struct submodule *module = NULL; + + module = submodule_from_path(null_sha1, path); + + if (module) { + char *key = xstrfmt("submodule.%s.url", module->name); + char *value = NULL; + + ret = !git_config_get_string(key, &value); + + free(value); + free(key); + } + + return ret; +} + +/* * Determine if a submodule has been populated at a given 'path' */ int is_submodule_populated(const char *path) diff --git a/submodule.h b/submodule.h index c4af505981..6ec5f2f207 100644 --- a/submodule.h +++ b/submodule.h @@ -37,6 +37,7 @@ void set_diffopt_flags_from_submodule_config(struct diff_options *diffopt, const char *path); int submodule_config(const char *var, const char *value, void *cb); void gitmodules_config(void); +extern int is_submodule_initialized(const char *path); extern int is_submodule_populated(const char *path); int parse_submodule_update_strategy(const char *value, struct submodule_update_strategy *dst); |