3 our $us = $0; $us =~ s#.*/##;
5 our $papersize = 'creditcard';
7 our $fontname = 'Courier';
10 usage: $us [<options>] <foo-mail-pregen> <foo-mail-pregen-opts>...
12 -p<papersize> for libpaper, or "creditcard" default is $papersize
13 -F<font> font name default is $fontname
18 sub badusage () { die "bad usage\n\n$usage"; }
21 badusage unless @ARGV;
22 last unless $ARGV[0] =~ m/^-/;
28 } elsif (s/^-n(\d{1,2})$//) {
30 } elsif (s/^-F([^()\\]+)$//) {
38 if ($papersize eq 'creditcard') {
39 # ISO/IEC 7810 ID-1, from en.wikipedia.org/wiki/Payment_card
40 @paperpts = map { $_ * 72.0 / 25.4 } qw(85.60 53.98);
42 $!=0; $?=0; my $r = `paperconf -sp $1`;
43 defined $r or die "paperconf failed: $? $!\n";
44 $r =~ m/^([0-9.]+) ([0-9.]+)$/ or die "$_ ?";
48 @ARGV >= 2 or badusage;
54 open P, "-|", @ARGV or die $!;
57 m/^(\d+) (\S+)$/ or die "$_ ?";
58 $nlen = length($1) if length($1) > $nlen;
59 push @strings, [ $1, $2 ];
61 $!=0; $?=0; close P or die "$us: generator failed: $! $?\n";
63 $_ = sprintf "%${nlen}s %s", @$_ foreach @strings;
65 print $_,"\n" or die $! foreach @strings;