From: Mischa POSLAWSKY Date: Fri, 31 May 2024 23:37:33 +0000 (+0200) Subject: tools/mkjson: set commandline flags as get options X-Git-Tag: v1.20~31 X-Git-Url: http://git.shiar.net/sheet.git/commitdiff_plain/9af77367fc77b33b2a937515098eb52d0b4bb5d2?ds=inline;hp=a461a9ac13d3801c9d722e40f0b51827e6646c38 tools/mkjson: set commandline flags as get options Support debugging overrides such as keyboard/altgr/weur.eng.inc.pl ?map. --- diff --git a/tools/mkjson b/tools/mkjson index dace34a..3b1bfa9 100755 --- a/tools/mkjson +++ b/tools/mkjson @@ -1,13 +1,22 @@ #!/usr/bin/env perl use 5.012; use warnings; -use JSON; use re '/msx'; +use JSON; + +our $VERSION = '1.00'; + +our %get; +while (@ARGV) { + $ARGV[0] =~ s/^--// or last; # --flag + my ($name, $val) = split /=/, shift, 2 or last; # set until empty + $get{$name} = $val // 1; +} +my $file = shift or die "Usage: $0 [--options] \n"; -my %opt; my $jsonify = JSON->new->utf8->canonical; -$jsonify->pretty if $opt{pretty}; +$jsonify->pretty if $get{pretty}; -my $data = do "./$ARGV[0]" or die $@; +my $data = do "./$file" or die $@; print $jsonify->encode($data) =~ s{\[ \K\n ([^][]+) (?=\])}{$1 =~ s/(?:\A|\n) \s*//gr}reg;