chiark / gitweb /
Remove more urcm-isms
[modbot-mtm.git] / install-substitutions
index b0349fab4684b54184d4a7aa7dd7f12a93aa06fa..4f09cd3c06ed52ea06180cba2c6f8f8cbb652d71 100755 (executable)
@@ -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 (<F>) {
                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 {