use strict;
die unless @ARGV == 4;
our ($out, $in, $lic, $usvg) = @ARGV;
open STDOUT, '>', "$out.tmp" or die $!;
open L, '<', $lic or die $!;
open STDIN, "<", $in or die $!;
$!=0; my $git = `git rev-parse HEAD`; die "$? $!" if $! || $?;
$!=0; my $plus = `git status --porcelain`; die "$? $!" if $! || $?;
chomp $git; chomp $plus;
$git .= "+" if length $plus;
sub add_lic () {
while (<L>) {
next unless m{^\s*SPDX-License-Identifier:\s+(\S.*?)\s*$};
print "<!-- otter.git#$git $out $1, see $lic -->\n" or die $!;
return;
}
die "no spdx in $lic ?";
}
add_lic();
flush STDOUT or die $!;
my $cmd = "$usvg";
open OPTS, "src/USVG_DEFAULT_ARGS.txt" or die $!;
while (<OPTS>) {
s/^\s*$//; s/\s*$//;
next unless m/^[^#]/;
$cmd .= " '$_'";
}
$cmd .= " - -c";
my $cmd_m = "$cmd <$in >$out.tmp";
print STDERR "+ $cmd_m\n";
$!=0; $?=0; system qw(sh -ec), "exec $cmd" and die "exec usvg: $cmd_m: $? $!";
rename "$out.tmp", $out or die "'$cmd_m': $!";