Re: [PATCH] config: Add --quoted option to produce machine-parsable output
- From
Junio C Hamano <junkio@cox.net>
- Date
- May 21, 2007, 18:03 UTC
- Message-ID
- <7vejladpfr.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <11797696193384-git-send-email-frank@lichtenheld.de>
Frank Lichtenheld <frank@lichtenheld.de> writes:
Show 17 quoted lines
> 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 <frank@lichtenheld.de>
> ---
> 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?