chiark / gitweb /
changelog: document further make-release changes
[otter.git] / usvg-processor
1 #!/usr/bin/perl -w
2
3 use strict;
4
5 die unless @ARGV == 4;
6 our ($out, $in, $lic, $usvg) = @ARGV;
7
8 open STDOUT, '>', "$out.tmp" or die $!;
9 open L, '<', $lic or die $!;
10 open STDIN, "<", $in or die $!;
11
12 $!=0; my $git = `git rev-parse HEAD`;       die "$? $!" if $! || $?;
13 $!=0; my $plus = `git status --porcelain`;  die "$? $!" if $! || $?;
14 chomp $git; chomp $plus;
15 $git .= "+" if length $plus;
16
17 sub add_lic () {
18   while (<L>) {
19     next unless m{^\s*SPDX-License-Identifier:\s+(\S.*?)\s*$};
20     print "<!-- otter.git#$git $out $1, see $lic -->\n" or die $!;
21     return;
22   }
23   die "no spdx in $lic ?";
24 }
25
26 add_lic();
27
28 flush STDOUT or die $!;
29 my $cmd = "$usvg";
30
31 open OPTS, "src/USVG_DEFAULT_ARGS.txt" or die $!;
32 while (<OPTS>) {
33   s/^\s*$//; s/\s*$//;
34   next unless m/^[^#]/;
35   $cmd .= " '$_'";
36 }
37
38 $cmd .= " - -c";
39
40 my $cmd_m = "$cmd <$in >$out.tmp";
41 print STDERR "+ $cmd_m\n";
42
43 $!=0; $?=0; system qw(sh -ec), "exec $cmd" and die "exec usvg: $cmd_m: $? $!";
44 rename "$out.tmp", $out or die "'$cmd_m': $!";