X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/0dbd7ab1eadd5fe5ba3cbc05299f9ff405b59c8a..675221b52b08ff40fa91f38fe2eae05a4ef155bc:/tools/mkttfinfo diff --git a/tools/mkttfinfo b/tools/mkttfinfo index 8593be6..c80f5fc 100755 --- a/tools/mkttfinfo +++ b/tools/mkttfinfo @@ -1,10 +1,17 @@ #!/usr/bin/env perl -use 5.010; +use 5.014; use strict; use warnings; use Data::Dump 'pp'; use Font::TTF::Font; +use Getopt::Long; + +our $VERSION = '1.00'; + +GetOptions(my %opt, + 'verbose|v!', +); my ($ttfuri, $outfile) = @ARGV; $ttfuri or die "usage error\n"; @@ -23,18 +30,6 @@ for ($outfile || ()) { select $output; } -my %FONTID = ( - 'Times New Roman' => 'times', - 'DejaVu Sans' => 'dv ss', - 'DejaVu Serif' => 'dv serif', - 'DejaVu Sans Mono'=> 'dv mono', - 'Code2000' => 'c2k', - 'GNU Unifont' => 'guf', - 'Droid Sans' => 'droid', - 'Droid Serif' => 'droid serif', - 'Droid Sans Mono' => 'droid mono', -); - { my $ttf = Font::TTF::Font->open($ttfuri) or die "Cannot open truetype in $ttfuri: $!"; @@ -44,8 +39,8 @@ my %FONTID = ( my %meta = ( source => $ttfuri =~ m{(^/usr/.+ | [^/]+) \z}msx, name => $ttfmeta->find_name(4) || $ttfname, - revision => $ttf->{head}->{fontRevision}, - version => scalar $ttfmeta->find_name(5), + revision => sprintf('%g', $ttf->{head}->{fontRevision}), + version => $ttfmeta->find_name(5) =~ s/\Aversion //ri =~ s/\s+\z//r, copyright=> scalar $ttfmeta->find_name(0), license => $ttfmeta->find_name(14) || undef, date => (map { @@ -55,11 +50,16 @@ my %FONTID = ( } } $ttf->{head}->getdate), ); - $meta{id} = $FONTID{ $meta{name} } // lc $ttfname; - say pp(\%meta), ','; + $meta{abbr} = lc join '', $meta{name} =~ s/ MS$//r =~ m{ + (?!Sans) (?{cmap}->find_ms->{val}; - warn scalar keys %$support, " characters read from $ttfname\n"; + warn scalar keys %$support, " characters read from $ttfname\n" + if $opt{verbose}; say pp(sort { $a <=> $b } keys %$support); } @@ -71,7 +71,7 @@ mkttfinfo - Extract character coverage and metadata in TrueType font =head1 SYNOPSIS - mkttfinfo [] + mkttfinfo [-v] [] =head1 AUTHOR