Code

make "git var" a built-in
[git.git] / var.c
diff --git a/var.c b/var.c
deleted file mode 100644 (file)
index d9892f8..0000000
--- a/var.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * GIT - The information manager from hell
- *
- * Copyright (C) Eric Biederman, 2005
- */
-#include "cache.h"
-#include "exec_cmd.h"
-
-static const char var_usage[] = "git var [-l | <variable>]";
-
-static const char *editor(int flag)
-{
-       const char *pgm = git_editor();
-
-       if (!pgm && flag & IDENT_ERROR_ON_NO_NAME)
-               die("Terminal is dumb, but EDITOR unset");
-
-       return pgm;
-}
-
-static const char *pager(int flag)
-{
-       const char *pgm = git_pager();
-
-       if (!pgm)
-               pgm = "cat";
-       return pgm;
-}
-
-struct git_var {
-       const char *name;
-       const char *(*read)(int);
-};
-static struct git_var git_vars[] = {
-       { "GIT_COMMITTER_IDENT", git_committer_info },
-       { "GIT_AUTHOR_IDENT",   git_author_info },
-       { "GIT_EDITOR", editor },
-       { "GIT_PAGER", pager },
-       { "", NULL },
-};
-
-static void list_vars(void)
-{
-       struct git_var *ptr;
-       const char *val;
-
-       for (ptr = git_vars; ptr->read; ptr++)
-               if ((val = ptr->read(0)))
-                       printf("%s=%s\n", ptr->name, val);
-}
-
-static const char *read_var(const char *var)
-{
-       struct git_var *ptr;
-       const char *val;
-       val = NULL;
-       for (ptr = git_vars; ptr->read; ptr++) {
-               if (strcmp(var, ptr->name) == 0) {
-                       val = ptr->read(IDENT_ERROR_ON_NO_NAME);
-                       break;
-               }
-       }
-       return val;
-}
-
-static int show_config(const char *var, const char *value, void *cb)
-{
-       if (value)
-               printf("%s=%s\n", var, value);
-       else
-               printf("%s\n", var);
-       return git_default_config(var, value, cb);
-}
-
-int main(int argc, char **argv)
-{
-       const char *val;
-       int nongit;
-       if (argc != 2) {
-               usage(var_usage);
-       }
-
-       git_extract_argv0_path(argv[0]);
-
-       setup_git_directory_gently(&nongit);
-       val = NULL;
-
-       if (strcmp(argv[1], "-l") == 0) {
-               git_config(show_config, NULL);
-               list_vars();
-               return 0;
-       }
-       git_config(git_default_config, NULL);
-       val = read_var(argv[1]);
-       if (!val)
-               usage(var_usage);
-
-       printf("%s\n", val);
-
-       return 0;
-}