builder: Skip checking out disabled submodules

tingping/wmclass
Michael Spencer 2016-01-28 12:46:40 -06:00
parent a12bb89c9c
commit ba5b5bc6b8
1 changed files with 13 additions and 0 deletions

View File

@ -415,6 +415,7 @@ git_extract_submodule (const char *repo_url,
g_autoptr(GFile) child_dir = NULL;
g_autofree char *child_url = NULL;
g_autofree char *option = NULL;
g_autofree char *update_method = NULL;
g_autofree char *child_relative_url = NULL;
g_autofree char *mirror_dir_as_url = NULL;
g_auto(GStrv) words = NULL;
@ -422,6 +423,18 @@ git_extract_submodule (const char *repo_url,
continue;
words = g_strsplit (lines[i] + 1, " ", 3);
// Skip any submodules that are disabled (have the update method set to "none")
// Only check if the command succeeds. If it fails, the update method is not set.
option = g_strdup_printf("submodule.%s.update", words[1]);
if (git(checkout_dir, &update_method, NULL,
"config", "-f", ".gitmodules", option, NULL)) {
/* Trim trailing whitespace */
g_strchomp(update_method);
if (g_strcmp0(update_method, "none") == 0)
continue;
}
option = g_strdup_printf ("submodule.%s.url", words[1]);
if (!git (checkout_dir, &child_relative_url, error,
"config", "-f", ".gitmodules", option, NULL))