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