Re: [PATCH] config: Add --quoted option to produce machine-parsable output
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:11
Frank Lichtenheld [off-list ref] writes:
This option will enclose key names in quotes (") if they
contain a subsection and then escape " and \. It will also
escape line breaks in values. Together this should produce
an easily parsable output.
Affects --list and --get-*
Signed-off-by: Frank Lichtenheld <redacted>
---
builtin-config.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 83 insertions(+), 9 deletions(-)
Will add asciidoc documentation and test cases if people think that this is
a good idea.
I'm writing C about once a year, so I really don't mind being told if it's
crap ;)
We probably would want to make this compatible with the quoting
rules various fo "host" language have. quote.c has host
language support to implement {perl,python,tcl}_quote_print()
for single string values or keys, so we should extend that idea.
In your application, what you are trying to do is to show a
"hash" (key => value) in a notation that is friendly to the host
language.
Git.pm could simply do:
my $eval = `git config --perl --get-regexp 'gitcvs\..*'`;
my $cfg = eval "$eval";
if you code your "perl" notation to produce:
+{
'gitcvs.ext.enabled' => 'false',
'gitcvs.logfile' => '/var/log/gitcvs.log',
}
in order to read things in.
Hmm?