All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brandon Williams <bmwill@google.com>
To: git@vger.kernel.org
Cc: Brandon Williams <bmwill@google.com>
Subject: [PATCH 1/5] submodules: add helper functions to determine presence of submodules
Date: Thu, 27 Oct 2016 15:38:30 -0700	[thread overview]
Message-ID: <20161027223834.35312-2-bmwill@google.com> (raw)
In-Reply-To: <20161027223834.35312-1-bmwill@google.com>

Add two helper functions to submodules.c.
`is_submodule_initialized()` checks if a submodule has been initialized
at a given path and `is_submodule_checked_out()` check if a submodule
has been checked out at a given path.

Signed-off-by: Brandon Williams <bmwill@google.com>
---
 submodule.c | 39 +++++++++++++++++++++++++++++++++++++++
 submodule.h |  2 ++
 2 files changed, 41 insertions(+)

diff --git a/submodule.c b/submodule.c
index 6f7d883de..029b24440 100644
--- a/submodule.c
+++ b/submodule.c
@@ -198,6 +198,45 @@ 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) {
+		struct strbuf buf = STRBUF_INIT;
+		char *submodule_url = NULL;
+
+		strbuf_addf(&buf, "submodule.%s.url",module->name);
+		ret = !git_config_get_string(buf.buf, &submodule_url);
+
+		free(submodule_url);
+		strbuf_release(&buf);
+	}
+
+	return ret;
+}
+
+/*
+ * Determine if a submodule has been checked out at a given 'path'
+ */
+int is_submodule_checked_out(const char *path)
+{
+	int ret = 0;
+	struct strbuf buf = STRBUF_INIT;
+
+	strbuf_addf(&buf, "%s/.git", path);
+	ret = file_exists(buf.buf);
+
+	strbuf_release(&buf);
+	return ret;
+}
+
 int parse_submodule_update_strategy(const char *value,
 		struct submodule_update_strategy *dst)
 {
diff --git a/submodule.h b/submodule.h
index d9e197a94..bd039ca98 100644
--- a/submodule.h
+++ b/submodule.h
@@ -37,6 +37,8 @@ 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_checked_out(const char *path);
 int parse_submodule_update_strategy(const char *value,
 		struct submodule_update_strategy *dst);
 const char *submodule_strategy_to_string(const struct submodule_update_strategy *s);
-- 
2.10.1.613.g6021889


  reply	other threads:[~2016-10-27 22:39 UTC|newest]

Thread overview: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-27 22:38 [RFC PATCH 0/5] recursively grep across submodules Brandon Williams
2016-10-27 22:38 ` Brandon Williams [this message]
2016-10-27 22:38 ` [PATCH 2/5] submodules: load gitmodules file from commit sha1 Brandon Williams
2016-10-27 22:38 ` [PATCH 3/5] grep: add submodules as a grep source type Brandon Williams
2016-10-27 22:38 ` [PATCH 4/5] grep: optionally recurse into submodules Brandon Williams
2016-11-05  5:09   ` Jonathan Tan
2016-10-27 22:38 ` [PATCH 5/5] grep: enable recurse-submodules to work on <tree> objects Brandon Williams
2016-10-28 19:35   ` Brandon Williams
2016-10-27 23:26 ` [RFC PATCH 0/5] recursively grep across submodules Junio C Hamano
2016-10-28  0:59   ` Stefan Beller
2016-10-28  2:50     ` Junio C Hamano
2016-10-28  3:46       ` Stefan Beller
2016-10-28 15:06       ` Philip Oakley
2016-10-28 17:02   ` Brandon Williams
2016-10-28 17:21     ` Junio C Hamano
2016-10-31 22:38 ` [PATCH v2 0/6] " Brandon Williams
2016-10-31 22:38   ` [PATCH v2 1/6] submodules: add helper functions to determine presence of submodules Brandon Williams
2016-10-31 23:34     ` Stefan Beller
2016-11-01 17:20       ` Junio C Hamano
2016-11-01 17:24         ` Brandon Williams
2016-11-01 17:31         ` Stefan Beller
2016-11-06  7:42           ` Jacob Keller
2016-11-01 17:23       ` Brandon Williams
2016-11-05  2:34     ` Jonathan Tan
2016-10-31 22:38   ` [PATCH v2 2/6] submodules: load gitmodules file from commit sha1 Brandon Williams
2016-11-01 16:39     ` Stefan Beller
2016-10-31 22:38   ` [PATCH v2 3/6] grep: add submodules as a grep source type Brandon Williams
2016-11-01 16:53     ` Stefan Beller
2016-11-01 17:31     ` Junio C Hamano
2016-10-31 22:38   ` [PATCH v2 4/6] grep: optionally recurse into submodules Brandon Williams
2016-11-01 17:26     ` Stefan Beller
2016-11-01 20:25       ` Brandon Williams
2016-10-31 22:38   ` [PATCH v2 5/6] grep: enable recurse-submodules to work on <tree> objects Brandon Williams
2016-11-11 23:09     ` Jonathan Tan
2016-10-31 22:38   ` [PATCH v2 6/6] grep: search history of moved submodules Brandon Williams
2016-11-11 23:51   ` [PATCH v3 0/6] recursively grep across submodules Brandon Williams
2016-11-11 23:51     ` [PATCH v3 1/6] submodules: add helper functions to determine presence of submodules Brandon Williams
2016-11-15 23:49       ` Stefan Beller
2016-11-11 23:51     ` [PATCH v3 2/6] submodules: load gitmodules file from commit sha1 Brandon Williams
2016-11-12  0:22       ` Stefan Beller
2016-11-11 23:51     ` [PATCH v3 3/6] grep: add submodules as a grep source type Brandon Williams
2016-11-11 23:51     ` [PATCH v3 4/6] grep: optionally recurse into submodules Brandon Williams
2016-11-16  0:07       ` Stefan Beller
2016-11-17 22:13         ` Brandon Williams
2016-11-11 23:51     ` [PATCH v3 5/6] grep: enable recurse-submodules to work on <tree> objects Brandon Williams
2016-11-14 18:10       ` Junio C Hamano
2016-11-14 18:44         ` Jonathan Tan
2016-11-14 18:56           ` Junio C Hamano
2016-11-14 19:08             ` Jonathan Tan
2016-11-14 19:14               ` Brandon Williams
2016-11-16  1:09       ` Stefan Beller
2016-11-17 23:34         ` Brandon Williams
2016-11-11 23:51     ` [PATCH v3 6/6] grep: search history of moved submodules Brandon Williams
2016-11-12  0:30       ` Stefan Beller
2016-11-14 17:43         ` Brandon Williams
2016-11-15 17:42     ` [PATCH v3 0/6] recursively grep across submodules Stefan Beller
2016-11-18 19:58     ` [PATCH v4 " Brandon Williams
2016-11-18 19:58       ` [PATCH v4 1/6] submodules: add helper functions to determine presence of submodules Brandon Williams
2016-11-18 19:58       ` [PATCH v4 2/6] submodules: load gitmodules file from commit sha1 Brandon Williams
2016-11-18 19:58       ` [PATCH v4 3/6] grep: add submodules as a grep source type Brandon Williams
2016-11-18 21:37         ` Junio C Hamano
2016-11-18 22:56           ` Brandon Williams
2016-11-18 19:58       ` [PATCH v4 4/6] grep: optionally recurse into submodules Brandon Williams
2016-11-18 21:48         ` Junio C Hamano
2016-11-18 22:01         ` Junio C Hamano
2016-11-18 22:14         ` Junio C Hamano
2016-11-18 22:58           ` Brandon Williams
2016-11-18 19:58       ` [PATCH v4 5/6] grep: enable recurse-submodules to work on <tree> objects Brandon Williams
2016-11-18 22:19         ` Junio C Hamano
2016-11-18 22:52           ` Brandon Williams
2016-11-21 18:14             ` Brandon Williams
2016-11-18 19:58       ` [PATCH v4 6/6] grep: search history of moved submodules Brandon Williams
2016-11-18 20:10       ` [PATCH v4 0/6] recursively grep across submodules Stefan Beller
2016-11-22 18:46       ` [PATCH v5 " Brandon Williams
2016-11-22 18:46         ` [PATCH v5 1/6] submodules: add helper functions to determine presence of submodules Brandon Williams
2016-11-22 18:46         ` [PATCH v5 2/6] submodules: load gitmodules file from commit sha1 Brandon Williams
2016-11-22 18:46         ` [PATCH v5 3/6] grep: add submodules as a grep source type Brandon Williams
2016-11-22 18:46         ` [PATCH v5 4/6] grep: optionally recurse into submodules Brandon Williams
2016-11-22 18:46         ` [PATCH v5 5/6] grep: enable recurse-submodules to work on <tree> objects Brandon Williams
2016-11-22 22:59           ` Junio C Hamano
2016-11-22 23:21             ` Brandon Williams
2016-11-22 23:28               ` Brandon Williams
2016-11-22 23:37                 ` Junio C Hamano
2016-11-22 23:54                   ` Brandon Williams
2016-11-22 18:46         ` [PATCH v5 6/6] grep: search history of moved submodules Brandon Williams
2016-12-01  1:28         ` [PATCH v6 0/6] recursively grep across submodules Brandon Williams
2016-12-01  1:28           ` [PATCH v6 1/6] submodules: add helper functions to determine presence of submodules Brandon Williams
2016-12-01  4:29             ` Jeff King
2016-12-01 18:31               ` Stefan Beller
2016-12-01 18:46               ` Junio C Hamano
2016-12-01 19:09                 ` Jeff King
2016-12-01 19:16                   ` Brandon Williams
2016-12-01 20:54                     ` Brandon Williams
2016-12-01 20:59                       ` Jeff King
2016-12-01 21:56                         ` Stefan Beller
2016-12-01 21:59                           ` Jeff King
2016-12-02 18:36                             ` Brandon Williams
2016-12-02 18:44                               ` Jacob Keller
2016-12-02 18:49                                 ` Brandon Williams
2016-12-02 19:20                                   ` Jacob Keller
2016-12-02 19:28                                     ` Stefan Beller
2016-12-02 21:31                                       ` Jacob Keller
2016-12-02 21:46                                         ` Brandon Williams
2016-12-02 21:45                                       ` Jeff King
2016-12-03  0:16                                         ` Brandon Williams
2016-12-01  1:28           ` [PATCH v6 2/6] submodules: load gitmodules file from commit sha1 Brandon Williams
2016-12-01  1:28           ` [PATCH v6 3/6] grep: add submodules as a grep source type Brandon Williams
2016-12-01  1:28           ` [PATCH v6 4/6] grep: optionally recurse into submodules Brandon Williams
2016-12-01  1:28           ` [PATCH v6 5/6] grep: enable recurse-submodules to work on <tree> objects Brandon Williams
2016-12-01  7:25             ` Johannes Sixt
2016-12-01 17:51               ` Brandon Williams
2016-12-01 18:49                 ` Junio C Hamano
2016-12-01 18:52                 ` Jeff King
2016-12-01  1:28           ` [PATCH v6 6/6] grep: search history of moved submodules Brandon Williams
2016-12-01  4:22           ` [PATCH v6 0/6] recursively grep across submodules Jeff King
2016-12-01 17:45             ` Brandon Williams
2016-12-01 19:03               ` Jeff King
2016-12-16 19:03           ` [PATCH v7 0/7] " Brandon Williams
2016-12-16 19:03             ` [PATCH v7 1/7] submodules: add helper to determine if a submodule is populated Brandon Williams
2016-12-16 19:03             ` [PATCH v7 2/7] submodules: add helper to determine if a submodule is initialized Brandon Williams
2016-12-16 19:03             ` [PATCH v7 3/7] submodules: load gitmodules file from commit sha1 Brandon Williams
2016-12-16 19:03             ` [PATCH v7 4/7] grep: add submodules as a grep source type Brandon Williams
2016-12-16 19:03             ` [PATCH v7 5/7] grep: optionally recurse into submodules Brandon Williams
2016-12-16 19:03             ` [PATCH v7 6/7] grep: enable recurse-submodules to work on <tree> objects Brandon Williams
2016-12-16 19:03             ` [PATCH v7 7/7] grep: search history of moved submodules Brandon Williams
2016-12-16 21:42             ` [PATCH v7 0/7] recursively grep across submodules Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161027223834.35312-2-bmwill@google.com \
    --to=bmwill@google.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.