X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/90f359d8af92cc32a2ec77ffe436c40d08041dc7..8e8998a5c2e51159db372eed7e4e293df83ccc91:/tools/mkcaniuse diff --git a/tools/mkcaniuse b/tools/mkcaniuse index d0cb827..53cd904 100755 --- a/tools/mkcaniuse +++ b/tools/mkcaniuse @@ -1,6 +1,5 @@ #!/usr/bin/env perl -use 5.010; -use strict; +use 5.014; use warnings; use Data::Dump 'pp'; @@ -13,35 +12,16 @@ our $VERSION = '1.01'; local $/; # slurp my $source = readline; -for ($source) { # cleanup - s/\A\(// and s/\);?\s*\Z//; # empty callback - next if /^\{/; # valid json - - # convert seperate variables to hash keys - s/\A/{\n/; - s/^caniuse\.(\w+) *= */"$1":/gm; - s/;$/,/gm; - s/,\s*\Z/\n}/; - # fractions not supported by barekey - s/(?<=[,{\n]) (\d*\.\d) (?=:['"])/"$1"/gx; - # escapes not supported in singlequote - s{: *\K'((?:[^\\']+|\\.)*)'}{ - my $_ = $1; - s/"/\\"/g; - s/\\'/'/g; - qq("$_"); - }ge; -} - -my $data = from_json($source, { - allow_singlequote => 1, - allow_barekey => 1, -}); +$JSON::PP::false = 0; +$JSON::PP::true = 1; + +my $data = from_json($source); my $update = eval { stat(${^LAST_FH} // $ARGV)->mtime } or warn "Could not determine input time\n"; $data->{-date} = Time::Piece->new($update)->datetime; -print pp($data); +say "# automatically generated by $0"; +print '+', pp($data); __END__