#!/bin/bash
#
# maybe-rerun-optim - helper for build system for board layouts
#
# Copyright (C) 2019 Ian Jackson
#
# This program is dual licensed, GPv3+ or CC-BY-SA 4.0+.
# Only to the Pandemic Rising Tide folks, it is permissively licensed.
#
# This program is free software.
#
# You can redistribute it and/or modify it under the terms of the
# GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option)
# any later version; or (at your option), under the terms of the
# Creative Commons Attribution-ShareAlike International License,
# version 4.0 of that License, or (at your option), any later
# version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License Creative Commons Attribution-ShareAlike
# License or the for more details.
#
# You should have received a copy of these licenses along with this
# program. If not, see and
# .
#
# Pandemic and Pandemic Rising Tide are (I think) trademarks of Z-Man
# games and I use them without permission.
#
# For the avoidance of doubt, I do not consider this program to be a
# derivative work of the game Pandemic Rising Tide. However, it is
# not very useful without a pair of game description files and the
# only nontrivial game description files I know of are indeed such
# derivatives.
set -e
set -o posix
set -o pipefail
input=$1 ; shift
planar_graph=$1 ; shift
dest=$1 ; shift
sums=$1 ; shift
inst () { mv -vf $dest.tmp $dest; }
if test -f $dest.reuse; then
cp -v $dest.reuse $dest.tmp
inst
exit 0
fi
sha256sum "$input" "$planar_graph" >$sums.tmp
for arg in "$@"; do printf >>$sums.tmp "%s\n" "$arg"; done
if cmp $sums.tmp $sums; then
exit 0
fi
"$planar_graph" <$input "$@"
inst
mv -f $sums.tmp $sums