X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~webstump/git?a=blobdiff_plain;f=install-substitutions;fp=install-substitutions;h=b0349fab4684b54184d4a7aa7dd7f12a93aa06fa;hb=7532a3d0dc5eaf8d57e66604aa4f1e8e6fc2eebb;hp=0000000000000000000000000000000000000000;hpb=719293191289cc9d85d784b4a155115a8acbed43;p=modbot-mtm.git diff --git a/install-substitutions b/install-substitutions new file mode 100755 index 0000000..b0349fa --- /dev/null +++ b/install-substitutions @@ -0,0 +1,35 @@ +#!/bin/bash +set -e +. settings +export GROUP +export ABBREV +export INFOHEADER +find -name '*.IN[O1]' -exec perl -e ' + use IO::Handle; + use POSIX; + my $f= shift; + my $d= $f; + $d =~ s/\.IN([O1])$//; + my $overwrite= ($1 eq 'O'); + my $g= "$d.new"; + open F, "< $f" or die "$f $!"; + open G, "> $g" or die "$g $!"; + while () { + s/\%(\w+)\%/ + exists($ENV{$1}) ? $ENV{$1} : die "$1 ?" + /ge; + print G or die $!; + } + F->error and die $!; + close F or die $!; + close G or die $!; + if ($overwrite) { + rename $g, $d or die "$g $d $!"; + } else { + if (link $g, $d) { + unlink $g or die $!; + } else { + die "$g $d $!" unless $!==&EEXIST; + } + } +' '{}' \;