diff options
-rw-r--r-- | Documentation/git-var.txt | 60 | ||||
-rw-r--r-- | Documentation/git.txt | 3 | ||||
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | var.c | 65 |
4 files changed, 130 insertions, 1 deletions
diff --git a/Documentation/git-var.txt b/Documentation/git-var.txt new file mode 100644 index 000000000..5a27d4470 --- /dev/null +++ b/Documentation/git-var.txt @@ -0,0 +1,60 @@ +git-var(1) +================== +v0.1, July 2005 + +NAME +---- +git-var - Print the git users identity + + +SYNOPSIS +-------- +git-var [ -l | <variable> ] + +DESCRIPTION +----------- +Prints a git logical variable. + +-l causes the logical variables to be listed. + +EXAMPLE +-------- +$git-var GIT_AUTHOR_IDENT + +Eric W. Biederman <ebiederm@lnxi.com> 1121223278 -0600 + + +VARIABLES +---------- +GIT_AUTHOR_IDENT + The author of a piece of code. + +GIT_COMMITTER_IDENT + The person who put a piece of code into git. + +Diagnostics +----------- +You don't exist. Go away!:: + The passwd(5) gecos field couldn't be read +Your parents must have hated you!:: + The password(5) gecos field is longer than a giant static buffer. +Your sysadmin must hate you!:: + The password(5) name field is longer than a giant static buffer. + +See Also +-------- +link:git-commit-tree.html[git-commit-tree] +link:git-tag-script.html[git-tag-script] + +Author +------ +Written by Eric Biederman <ebiederm@xmission.com> + +Documentation +-------------- +Documentation by Eric Biederman and the git-list <git@vger.kernel.org>. + +GIT +--- +Part of the link:git.html[git] suite + diff --git a/Documentation/git.txt b/Documentation/git.txt index 9e34146e3..916a0b7f0 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -111,6 +111,9 @@ link:git-tar-tree.html[git-tar-tree]:: link:git-unpack-file.html[git-unpack-file]:: Creates a temporary file with a blob's contents +link:git-var.html[git-var]:: + Displays a git logical variable + link:git-verify-pack.html[git-verify-pack]:: Validates packed GIT archive files @@ -48,7 +48,7 @@ PROG= git-update-cache git-diff-files git-init-db git-write-tree \ git-diff-stages git-rev-parse git-patch-id git-pack-objects \ git-unpack-objects git-verify-pack git-receive-pack git-send-pack \ git-prune-packed git-fetch-pack git-upload-pack git-clone-pack \ - git-show-index git-daemon + git-show-index git-daemon git-var all: $(PROG) @@ -148,6 +148,7 @@ git-receive-pack: receive-pack.c git-send-pack: send-pack.c git-prune-packed: prune-packed.c git-fetch-pack: fetch-pack.c +git-var: var.c git-http-pull: LIBS += -lcurl git-rev-list: LIBS += -lssl @@ -0,0 +1,65 @@ +/* + * GIT - The information manager from hell + * + * Copyright (C) Eric Biederman, 2005 + */ +#include "cache.h" +#include <stdio.h> +#include <errno.h> +#include <string.h> + +static char *var_usage = "git-var [-l | <variable>]"; + +struct git_var { + const char *name; + char *(*read)(void); +}; +static struct git_var git_vars[] = { + { "GIT_COMMITTER_IDENT", git_committer_info }, + { "GIT_AUTHOR_IDENT", git_author_info }, + { "", NULL }, +}; + +static void list_vars(void) +{ + struct git_var *ptr; + for(ptr = git_vars; ptr->read; ptr++) { + printf("%s=%s\n", ptr->name, ptr->read()); + } +} + +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(); + break; + } + } + return val; +} + +int main(int argc, char **argv) +{ + const char *val; + if (argc != 2) { + usage(var_usage); + } + setup_ident(); + val = NULL; + + if (strcmp(argv[1], "-l") == 0) { + list_vars(); + return 0; + } + val = read_var(argv[1]); + if (!val) + usage(var_usage); + + printf("%s\n", val); + + return 0; +} |