chiark / gitweb /
build default stopword list into server
[disorder] / debian / postinst.disorder-server
CommitLineData
460b9539 1#! /bin/sh
2#
3# This file is part of DisOrder
07184dd3 4# Copyright (C) 2004, 2007 Richard Kettlewell
460b9539 5#
6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2 of the License, or
9# (at your option) any later version.
10#
11# This program is distributed in the hope that it will be useful, but
12# WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14# General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with this program; if not, write to the Free Software
18# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
19# USA
20#
21
22set -e
23
24. /usr/share/debconf/confmodule
25
26add_jukebox_user() {
27 adduser --quiet --system --group --shell /bin/sh --home /var/lib/disorder \
28 --no-create-home jukebox
29}
30
31configure_init_d() {
32 update-rc.d disorder defaults 92 19 > /dev/null
33}
34
35restart_server() {
36 /etc/init.d/disorder restart
37}
38
39case "$1" in
40configure )
41 if grep -q ^jukebox: /etc/passwd; then
42 :
43 else
44 add_jukebox_user
45 fi
46 if test ! -f /etc/disorder/config.private; then
460b9539 47 rootpw=`pwgen 16 1`
48 webpw=`pwgen 16 1`
460b9539 49 if test -z "$rootpw" || test -z "$webpw"; then
07184dd3
RK
50 # We used to ignore the exit status of pwgen due to a bug in an old
51 # version of Debian. That bug seems to be gone, but this check is
52 # harmless and could catch future bugs.
460b9539 53 echo "$0: pwgen failed" 1>&2
54 exit 1
55 fi
07184dd3 56 # We set the umask so that private files aren't transiently world-readable
460b9539 57 u=`umask`
58 umask 077
59
60 echo allow root "$rootpw" > /etc/disorder/config.private.new
61 echo allow www-data "$webpw" >> /etc/disorder/config.private.new
62 chgrp jukebox /etc/disorder/config.private.new
63 chmod 640 /etc/disorder/config.private.new
64 mv /etc/disorder/config.private.new /etc/disorder/config.private
65
66 if test ! -f /etc/disorder/config.www-data; then
67 echo password "$webpw" > /etc/disorder/config.www-data.new
68 chgrp www-data /etc/disorder/config.www-data.new
69 chmod 640 /etc/disorder/config.www-data.new
70 mv /etc/disorder/config.www-data.new /etc/disorder/config.www-data
71 fi
72 umask $u
73 fi
74
75 if test ! -f /etc/disorder/http.users; then
76 u=`umask`
77 umask 077
78 touch /etc/disorder/http.users
79 chgrp www-data /etc/disorder/http.users
80 chmod 640 /etc/disorder/http.users
81 umask $u
82 fi
83 chown jukebox:jukebox /var/lib/disorder
84 configure_init_d
85 restart_server
460b9539 86 db_stop
460b9539 87 ;;
88abort-upgrade )
89 /etc/init.d/disorder restart
90 ;;
91reconfigure )
92 /etc/init.d/disorder reload
93 ;;
94esac