Skip to content

Commit

Permalink
git-repo-config --list support
Browse files Browse the repository at this point in the history
This adds git-repo-config --list (or git-repo-config -l) support,
similar to what git-var -l does now (to be phased out so that we
have a single sane interface to the config file instead of fragmented
and confused API).

Signed-off-by: Petr Baudis <pasky@suse.cz>
  • Loading branch information
Petr Baudis authored and Junio C Hamano committed Apr 25, 2006
1 parent 36932ea commit de791f1
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 2 deletions.
4 changes: 4 additions & 0 deletions Documentation/git-repo-config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ SYNOPSIS
'git-repo-config' [type] --get-all name [value_regex]
'git-repo-config' [type] --unset name [value_regex]
'git-repo-config' [type] --unset-all name [value_regex]
'git-repo-config' -l | --list

DESCRIPTION
-----------
Expand Down Expand Up @@ -64,6 +65,9 @@ OPTIONS
--unset-all::
Remove all matching lines from .git/config.

-l, --list::
List all variables set in .git/config.


EXAMPLE
-------
Expand Down
16 changes: 14 additions & 2 deletions repo-config.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#include <regex.h>

static const char git_config_set_usage[] =
"git-repo-config [ --bool | --int ] [--get | --get-all | --replace-all | --unset | --unset-all] name [value [value_regex]]";
"git-repo-config [ --bool | --int ] [--get | --get-all | --replace-all | --unset | --unset-all] name [value [value_regex]] | --list";

static char* key = NULL;
static char* value = NULL;
Expand All @@ -12,6 +12,15 @@ static int do_not_match = 0;
static int seen = 0;
static enum { T_RAW, T_INT, T_BOOL } type = T_RAW;

static int show_all_config(const char *key_, const char *value_)
{
if (value_)
printf("%s=%s\n", key_, value_);
else
printf("%s\n", key_);
return 0;
}

static int show_config(const char* key_, const char* value_)
{
if (value_ == NULL)
Expand Down Expand Up @@ -67,7 +76,7 @@ static int get_value(const char* key_, const char* regex_)
}
}

i = git_config(show_config);
git_config(show_config);
if (value) {
printf("%s\n", value);
free(value);
Expand Down Expand Up @@ -99,6 +108,9 @@ int main(int argc, const char **argv)
argv++;
}

if (!strcmp(argv[1], "--list") || !strcmp(argv[1], "-l"))
return git_config(show_all_config);

switch (argc) {
case 2:
return get_value(argv[1], NULL);
Expand Down

0 comments on commit de791f1

Please sign in to comment.