If multiple PCFs request the same mapping, only write it once; if
they induce inconsistent mappings, report an error. Make sure
there's a newline between foundry mapping entries.
Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
}
seenrules=/
+seenfoundries=/
while read keyword rest; do
case "$keyword" in
print or die $!;
exit;
' <$good`
- printf "%s %s" "$oldfoundry" "$newfoundry" >>rules/foundries.new
+ case "$seenfoundries" in
+ */"$oldfoundry,$newfoundry"/*)
+ ;;
+ */"$oldfoundry,"*)
+ echo >&2 "inconsistent foundry mapping"
+ exit 1
+ ;;
+ *)
+ seenfoundries=$seenfoundries$oldfoundry,$newfoundry/
+ printf >>rules/foundries.new \
+ "%s %s\n" "$oldfoundry" "$newfoundry"
+ ;;
+ esac
case "$seenrules" in
*/"$newfoundry,$key"/*)
exec 3>>rules/$newfoundry,$key.rules