chiark / gitweb /
Merge branch 'master' of /u/webstump/live-urcm
[modbot-mtm.git] / install-substitutions
1 #!/bin/bash
2 set -e
3 . settings
4 export GROUP
5 export ABBREV
6 export INFOHEADER
7 find -name '*.IN[O1]' -exec perl -e '
8         use IO::Handle;
9         use POSIX;
10         my $f= shift;
11         my $d= $f;
12         $d =~ s/\.IN([O1])$//;
13         my $overwrite= ($1 eq 'O');
14         my $g= "$d.new";
15         open F, "< $f" or die "$f $!";
16         open G, "> $g" or die "$g $!";
17         while (<F>) {
18                 s/\%(\w+)\%/ 
19                         exists($ENV{$1}) ? $ENV{$1} : die "$1 ?"
20                  /ge;
21                 print G or die $!;
22         }
23         F->error and die $!;
24         close F or die $!;
25         close G or die $!;
26         if ($overwrite) {
27                 rename $g, $d or die "$g $d $!";
28         } else {
29                 if (link $g, $d) {
30                         unlink $g or die $!;
31                 } else {
32                         die "$g $d $!" unless $!==&EEXIST;
33                 }
34         }
35 ' '{}' \;