From: Ian Jackson Date: Fri, 4 Dec 2009 18:09:44 +0000 (+0000) Subject: WIP installation stuff X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~webstump/git?p=modbot-mtm.git;a=commitdiff_plain;h=7532a3d0dc5eaf8d57e66604aa4f1e8e6fc2eebb WIP installation stuff --- diff --git a/.gitignore b/.gitignore index 0299241..4da94c1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,9 @@ /xlog/log/*/event.log /xlog/log/*/event.log.[0-9] /xlog/log/*/event.log.[0-9].gz +/settings +/crontab.part +/stump/etc/added-headers +/stump/etc/added-footer +/stump/etc/added-footer.new +/stump/etc/approval.key.txt diff --git a/crontab.part b/crontab.part deleted file mode 100644 index 602ab06..0000000 --- a/crontab.part +++ /dev/null @@ -1,7 +0,0 @@ -# -# install with -# ssh webstump@chiark crontab live/crontab -# -#m h d m dow -50 7 12 * * savelog live/xlog/log/uk.rec.cycling.moderated/event.log -50 7 12 * * savelog live/errs diff --git a/crontab.part.INO b/crontab.part.INO new file mode 100644 index 0000000..4704cd1 --- /dev/null +++ b/crontab.part.INO @@ -0,0 +1,7 @@ +# +# install with +# ssh webstump@chiark live/crontab-install +# +#m h d m dow +50 7 12 * * savelog live-%ABBREV%/xlog/log/%GROUP%/event.log +50 7 12 * * savelog live-%ABBREV%/errs diff --git a/install-aggregates b/install-aggregates new file mode 100755 index 0000000..10e2e6d --- /dev/null +++ b/install-aggregates @@ -0,0 +1,29 @@ +#!/bin/bash +set -e + +basedir=`dirname "$0"` +case "$basedir" in +.|..) basedir="$basedir/.." ;; +*) basedir=`dirname "$basedir"` ;; +esac +cd $basedir + +for f in crontab forward-suffix forward-slimy +do + d=$f + g=$f.combined + >$g + + case $f in + forward-*) d=.$d; echo '# Exim filter' >>$g ;; + esac + + echo '# autogenerated - do not edit' >>$g + if test -f $f.part; then cat $f.part >>$g; fi + cat live-*/$f.part >>$g + + mv -f $g $d + case $f in + crontab) crontab crontab ;; + esac +done diff --git a/install-key b/install-key new file mode 100755 index 0000000..feee4cc --- /dev/null +++ b/install-key @@ -0,0 +1,24 @@ +#!/bin/bash +set -e + +fail () { echo >&2 "fatal: $*"; exit 1; } + +. settings + +armorout=stump/etc/approval.key.txt +if test -f $armorout; then exit 0; fi + +if [ x"`whoami`" != xwebstump ]; then fail "wrong user"; fi + +gpg --batch --gen-key - <" >$armorout diff --git a/install-substitutions b/install-substitutions new file mode 100755 index 0000000..b0349fa --- /dev/null +++ b/install-substitutions @@ -0,0 +1,35 @@ +#!/bin/bash +set -e +. settings +export GROUP +export ABBREV +export INFOHEADER +find -name '*.IN[O1]' -exec perl -e ' + use IO::Handle; + use POSIX; + my $f= shift; + my $d= $f; + $d =~ s/\.IN([O1])$//; + my $overwrite= ($1 eq 'O'); + my $g= "$d.new"; + open F, "< $f" or die "$f $!"; + open G, "> $g" or die "$g $!"; + while () { + s/\%(\w+)\%/ + exists($ENV{$1}) ? $ENV{$1} : die "$1 ?" + /ge; + print G or die $!; + } + F->error and die $!; + close F or die $!; + close G or die $!; + if ($overwrite) { + rename $g, $d or die "$g $d $!"; + } else { + if (link $g, $d) { + unlink $g or die $!; + } else { + die "$g $d $!" unless $!==&EEXIST; + } + } +' '{}' \; diff --git a/setup b/setup new file mode 100755 index 0000000..980a5a5 --- /dev/null +++ b/setup @@ -0,0 +1,9 @@ +#!/bin/bash +set -e +# To set up a new newsgroup, run this script. +# +# Some things are idempotent, others are once-only. + +./install-key +./install-substitutions +./install-aggregates diff --git a/stump/etc/added-footer.IN1 b/stump/etc/added-footer.IN1 new file mode 100644 index 0000000..e69de29 diff --git a/stump/etc/added-headers.INO b/stump/etc/added-headers.INO new file mode 100644 index 0000000..afe9a1c --- /dev/null +++ b/stump/etc/added-headers.INO @@ -0,0 +1 @@ +X-Moderation: %INFOHEADER% diff --git a/stump/etc/hostname.REPLACEMENT b/stump/etc/hostname.REPLACEMENT deleted file mode 100755 index 820d4a2..0000000 --- a/stump/etc/hostname.REPLACEMENT +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# -# This is a shell script that replaces "hostname" on bsd-derived systems -# where inews conflicts with system-provided "hostname" program. -# -# This is a drop-in replacement for hostname. -# -# Edit this file and set HOSTNAME and FULL_HOSTNAME to the right values, -# according to your machine's system name. -# -# Read instructions in "modenv" file (close to RNEWS) where I explain when -# you should use this script, and how. -# -# Example: -# HOSTNAME=galaxy -# FULL_HOSTNAME=galaxy.galstar.com - -HOSTNAME=manifold -FULL_HOSTNAME=manifold.algebra.com - -if [ "x$1" = "-f" ] ; then - echo $HOSTNAME -else - echo $FULL_HOSTNAME -fi