countries: abbreviate West and East names
[sheet.git] / tools / mkcaniuse
1 #!/usr/bin/env perl
2 use 5.014;
3 use warnings;
4
5 use Data::Dump 'pp';
6 use JSON::PP;
7 use File::stat;
8 use Time::Piece;
9
10 our $VERSION = '1.02';
11
12 local $/;  # slurp
13 my $source = readline;
14
15 $JSON::PP::false = 0;
16 $JSON::PP::true  = 1;
17
18 my $data = decode_json($source);
19 my $update = eval { stat(${^LAST_FH} // $ARGV)->mtime }
20         or warn "Could not determine input time\n";
21 $data->{-date} = Time::Piece->new($update)->datetime;
22 delete $data->{eras};
23 for (values %{ $data->{data} }) {
24         delete @{$_}{qw[ usage_perc_a usage_perc_y ]};
25 }
26 for (values %{ $data->{agents} }) {
27         delete $_->{usage_global};
28         shift @{ $_->{versions} } while !defined $_->{versions}->[0];
29 }
30
31 say "# automatically generated by $0";
32 print '+', pp($data);
33
34 __END__
35
36 =head1 NAME
37
38 mkcaniuse - Turn Javascript data into an equivalent Perl structure
39
40 =head1 SYNOPSIS
41
42         tools/mkcaniuse data.json >browser-support.inc.pl
43