Fix installation for silc-client and silc-toolkit packages
[silc.git] / debian-silc-server / config
1 #!/bin/sh
2
3 set -e
4
5 . /usr/share/debconf/confmodule
6
7 CONFIGFILE="/etc/silcd/silcd.conf"
8 ADMINCONFIGFILE="/etc/silcd/silcd-admin.conf"
9
10 read_config() {
11     FILE="$1"
12     PARAMETER="$2"
13     sed -n -e "s/^[^#]*$PARAMETER  *=  *\"\(\(\\\.\|[^\"]\)*\)\".*$/\1/p" \
14         "$CONFIGFILE" | sed -e 's/\\//g'
15 }
16
17 if [ -e "$CONFIGFILE" ]; then
18     PUBLIC_KEY="$(read_config "$CONFIGFILE" PublicKey)"
19     PRIVATE_KEY="$(read_config "$CONFIGFILE" PrivateKey)"
20
21     SERVER_NAME="$(read_config "$CONFIGFILE" ServerType)"
22     if [ -n "$SERVER_NAME" ]; then
23         db_set silcd/server-name "$SERVER_NAME"
24     fi
25     HOST_NAME="$(read_config "$CONFIGFILE" hostname)"
26     if [ -n "$HOST_NAME" ]; then
27         db_set silcd/host-name "$HOST_NAME"
28     fi
29     REAL_NAME="$(read_config "$CONFIGFILE" Admin)"
30     if [ -n "$REAL_NAME" ]; then
31         db_set silcd/real-name "$REAL_NAME"
32     fi
33     EMAIL="$(read_config "$CONFIGFILE" AdminEmail)"
34     if [ -n "$EMAIL" ]; then
35         db_set silcd/email "$EMAIL"
36     fi
37     COUNTRY="$(read_config "$CONFIGFILE" Location)"
38     if [ -n "$COUNTRY" ]; then
39         db_set silcd/country "$COUNTRY"
40     fi
41     ADMIN_NICK="$(read_config "$ADMINCONFIGFILE" Nick)"
42     if [ -n "$ADMIN_NICK" ]; then
43         db_set silcd/admin-nick "$ADMIN_NICK"
44     fi
45     ADMIN_PASSPHRASE="$(read_config "$ADMINCONFIGFILE" Passphrase)"
46     if [ -n "$ADMIN_PASSPHRASE" ]; then
47         db_set silcd/admin-passphrase "$ADMIN_PASSPHRASE"
48     fi
49 else
50     PUBLIC_KEY="/etc/silcd/silcd.pub"
51     PRIVATE_KEY="/etc/silcd/silcd.prv"
52     HOST_NAME="$(hostname -f)"
53 fi
54
55 db_input high silcd/server-name || true
56 db_input high silcd/host-name || true
57 db_input medium silcd/real-name || true
58 db_input medium silcd/email || true
59 if [ "$DEBCONF_RECONFIGURE" = "1" ] ||
60    ! [ -e "$PUBLIC_KEY" -a -e "$PRIVATE_KEY" ]; then
61     db_input medium silcd/organization || true
62 fi
63 db_input medium silcd/country || true
64 db_go || true
65
66 db_input high silcd/admin-nick || true
67 db_input high silcd/admin-passphrase || true
68 db_go || true
69