chiark / gitweb /
Remove more urcm-isms
[modbot-mtm.git] / install-newsgroup
1 #!/bin/bash
2 set -e
3
4 . settings
5 . ../global-settings
6 . persistent-autosettings
7
8 mkdir -p stump/tmp/messages
9 mkdir -p stump/data
10 mkdir -p webstump/queues/$GROUP
11 mkdir -p xlog/log/$GROUP
12
13 ngdir=webstump/config/newsgroups/$GROUP
14 mkdir -p $ngdir
15 cp webstump/skeleton/*.IN[1O] $ngdir/.
16
17 exec <moderators
18
19 mods=$ngdir/moderators
20 exec 3>$mods.new
21
22 test -f $mods || touch $mods
23
24 while read name email; do
25         set +e
26         grep "^$name " $mods >$mods.tmp
27         rc=$?
28         set -e
29         case $rc in
30         0)      ;;
31         1)
32                 pass=`perl -e </dev/urandom '
33                         select(STDIN); $|=1; select(STDOUT);
34                         for $x (0..7) {
35                                 read(STDIN,$bin,4) == 4 or die $!;
36                                 $v= unpack "l",$bin;
37                                 $v %= 36;
38                                 printf "%c", $v<10
39                                         ? $v+ord("0")
40                                         : $v-10+ord("A");
41                         }
42                         print "\n";
43                 '`
44                 echo "$name $pass" >$mods.tmp
45
46                 mail -s "your $ABBREV moderator password" <<END "$email"
47 The moderation interface for $GROUP is here:
48   $CGIBASEURL/g.$ABBREV/webstump?action=login_screen&newsgroup=$GROUP
49
50 Your username and password for the moderation interface are:
51   $name
52   $pass
53 These are _not_ case sensitive (!)
54
55 Please see other emails for further information.
56
57 Regards,
58 moderation system administrator
59 END
60                 ;;
61         *)
62                 echo >&2 "huh $rc ?"; exit 1
63                 ;;
64         esac
65         cat $mods.tmp >&3
66         rm $mods.tmp
67 done
68
69 exec <$mods
70 while read name pass; do
71         set +e
72         grep "^$name " $mods.new >$mods.tmp
73         rc=$?
74         set -e
75         case $rc in
76         0)      ;;
77         1)
78                 echo "*** Preserving obsolete moderator $name"
79                 cat $mods.tmp >&3
80                 ;;
81         *)
82                 echo >&2 "huh2 $rc ?"; exit 1
83                 ;;
84         esac
85         rm $mods.tmp
86 done
87
88 mv -f $mods.new $mods