@@ -6,6 +6,7 @@
#include <stdio.h>
#include "builtin.h"
+#include "config.h"
#include "parse-options.h"
static const char * const walken_usage[] = {
@@ -25,6 +26,28 @@ static void init_walken_defaults(void)
*/
}
+/*
+ * This method will be called back by git_config(). It is used to gather values
+ * from the configuration files available to Git.
+ *
+ * Each time git_config() finds a configuration file entry, it calls this
+ * callback. Then, this function should compare it to entries which concern us,
+ * and make settings changes as necessary.
+ *
+ * If we are called with a config setting we care about, we should use one of
+ * the helpers which exist in config.h to pull out the value for ourselves, i.e.
+ * git_config_string(...) or git_config_bool(...).
+ *
+ * If we don't match anything, we should pass it along to another stakeholder
+ * who may otherwise care - in log's case, grep, gpg, and diff-ui. For our case,
+ * we'll ignore everybody else.
+ */
+static int git_walken_config(const char *var, const char *value, void *cb)
+{
+ /* For now, let's not bother with anything. */
+ return git_default_config(var, value, cb);
+}
+
int cmd_walken(int argc, const char **argv, const char *prefix)
{
struct option options[] = {
@@ -34,6 +57,9 @@ int cmd_walken(int argc, const char **argv, const char *prefix)
argc = parse_options(argc, argv, prefix, options, walken_usage, 0);
init_walken_defaults();
+
+ git_config(git_walken_config, NULL);
+
printf(_("cmd_walken incoming...\n"));
return 0;
}
For now, we have no configuration options we want to set up for ourselves, but in the future we may need to. At the very least, we should invoke git_default_config() for each config option; we will do so inside of a skeleton config callback so that we know where to add configuration handling later on when we need it. Signed-off-by: Emily Shaffer <emilyshaffer@google.com> --- builtin/walken.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)