X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~webstump/git?p=modbot-mtm.git;a=blobdiff_plain;f=install-substitutions;h=4f09cd3c06ed52ea06180cba2c6f8f8cbb652d71;hp=b0349fab4684b54184d4a7aa7dd7f12a93aa06fa;hb=ba127667dfd3840ea6f78067e2aa0b9002399c05;hpb=c976d4ac6f226fe30c69580ddb9acf952b67893e diff --git a/install-substitutions b/install-substitutions index b0349fa..4f09cd3 100755 --- a/install-substitutions +++ b/install-substitutions @@ -1,10 +1,9 @@ #!/bin/bash set -e -. settings -export GROUP -export ABBREV -export INFOHEADER -find -name '*.IN[O1]' -exec perl -e ' + +. ./get-settings + +find -name '*.IN[O1]' ! -path '*/skeleton/*' -exec perl -e ' use IO::Handle; use POSIX; my $f= shift; @@ -14,15 +13,20 @@ find -name '*.IN[O1]' -exec perl -e ' my $g= "$d.new"; open F, "< $f" or die "$f $!"; open G, "> $g" or die "$g $!"; + stat F or die "$f $!"; + my $mode= (stat F)[2]; while () { s/\%(\w+)\%/ - exists($ENV{$1}) ? $ENV{$1} : die "$1 ?" + exists($ENV{$1}) ? $ENV{$1} : die "$1 undef at $f:$.\n" /ge; print G or die $!; } F->error and die $!; - close F or die $!; close G or die $!; + if ($mode & 01) { + chmod 0755, $g or die "$g $!"; + } + close F or die $!; if ($overwrite) { rename $g, $d or die "$g $d $!"; } else {