chiark / gitweb /
inews: Add %ABBREV% to "lost" messages
[modbot-mtm.git] / install-substitutions
index 4f09cd3c06ed52ea06180cba2c6f8f8cbb652d71..74e90435ee13dbe00dd1407ca2b4f353ff658539 100755 (executable)
@@ -1,8 +1,26 @@
 #!/bin/bash
 set -e
 
+if [ "x$1" = "x-n" ]; then
+        diffonly=1; diffsparse=0; shift
+elif [ "x$1" = "x-nq" ]; then
+        diffonly=1; diffsparse=1; shift
+else
+        diffonly=0; diffsparse=-1
+fi
+
+if [ $# != 0 ]; then echo >&2 "usage: ./${0##*/} [-n]"; exit 1; fi
+
 . ./get-settings
 
+if [ x"`whoami`" != x"$OURUSER" ]; then
+       echo >&2 "$0 must be run as $OURUSER, skipping"
+       exit 0
+fi
+
+# procmail insists on g-w
+umask 022
+
 find -name '*.IN[O1]' ! -path '*/skeleton/*' -exec perl -e '
        use IO::Handle;
        use POSIX;
@@ -27,7 +45,15 @@ find -name '*.IN[O1]' ! -path '*/skeleton/*' -exec perl -e '
                chmod 0755, $g or die "$g $!";
        }
        close F or die $!;
-       if ($overwrite) {
+        if ('$diffonly') {
+                if (!-f $d) {
+                        print "Would create $d\n";
+                } elsif ('$diffsparse' && !$overwrite) {
+                        print "Not reporting on $d as would not overwrite.\n";
+                } else {
+                        system "diff -u $d $g";
+                }
+        } elsif ($overwrite) {
                rename $g, $d or die "$g $d $!";
        } else {
                if (link $g, $d) {