#!/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