X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~webstump/git?a=blobdiff_plain;f=install-substitutions;h=74e90435ee13dbe00dd1407ca2b4f353ff658539;hb=4b0444617af5c976bd16d4be765799aeb4c7e9e2;hp=4f09cd3c06ed52ea06180cba2c6f8f8cbb652d71;hpb=fb2fab4c4dcc7ba27dc37e77055c7816a57e3fb5;p=modbot-ulm.git diff --git a/install-substitutions b/install-substitutions index 4f09cd3..74e9043 100755 --- a/install-substitutions +++ b/install-substitutions @@ -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) {