diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-01-21 20:21:55 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-01-21 22:04:42 -0800 |
commit | 55b6745d633b9501576eb02183da0b0fb1cee964 (patch) | |
tree | 32f6d0a3026466c9a04438387f0f7701b88f0245 /var.c | |
parent | 8b187e6b0e114055071a9ae8f56b9a2a24bfaf8f (diff) | |
download | git-55b6745d633b9501576eb02183da0b0fb1cee964.tar.gz |
make "git var" a built-in
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'var.c')
-rw-r--r-- | var.c | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/var.c b/var.c deleted file mode 100644 index d9892f85ce..0000000000 --- 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; -} |