5 . /usr/share/debconf/confmodule
8 CONFIGFILE="$CONFIGDIR/silcd.conf"
9 IPCONFIGFILE="$CONFIGDIR/silcd-primary-ip.conf"
10 ADMINCONFIGFILE="$CONFIGDIR/silcd-admin.conf"
11 DEFAULT_CONFIGDIR="/usr/share/doc/silcd/examples"
12 DEFAULT_CONFIGFILE="$DEFAULT_CONFIGDIR/silcd.conf.default.gz"
13 DEFAULT_IPCONFIGFILE="$DEFAULT_CONFIGDIR/silcd-primary-ip.conf.default"
14 DEFAULT_ADMINCONFIGFILE="$DEFAULT_CONFIGDIR/silcd-admin.conf.default"
18 sed -n -e "s/^[^#]*$PARAMETER *= *\"\(\(\\\.\|[^\"]\)*\)\".*$/\1/p" \
19 "$CONFIGFILE" | sed -e 's/\\//g'
22 if [ -e "$CONFIGFILE" ]; then
23 PUBLIC_KEY="$(read_config PublicKey)"
24 PRIVATE_KEY="$(read_config PrivateKey)"
26 PUBLIC_KEY="/etc/silcd/silcd.pub"
27 PRIVATE_KEY="/etc/silcd/silcd.prv"
30 retrieve_debconf_answers() {
31 db_get silcd/server-name
33 db_get silcd/host-name
35 db_get silcd/real-name
39 db_get silcd/organization
43 db_get silcd/admin-nick
45 db_get silcd/admin-passphrase
46 ADMIN_PASSPHRASE="$RET"
50 # We espace: symbols ,w+"\<> and spaces at end and begining
51 echo "$1" | sed -e 's/[,;+"\\<>]/\\\0/g;s/ $/\\\0/g;s/^[ #]/\\\0/g'
57 retrieve_debconf_answers
59 if [ -z "$SERVER_NAME" -o -z "$HOST_NAME" ]; then
60 # Don't create keypair
64 IDENTIFIER="UN=$(rfc2253ize "SERVER_NAME"), HN=$(rfc2253ize "$HOST_NAME")"
65 if [ -n "$REAL_NAME" ]; then
66 IDENTIFIER="$IDENTIFIER, RN=$(rfc2253ize "$REAL_NAME")"
68 if [ -n "$EMAIL" ]; then
69 IDENTIFIER="$IDENTIFIER, E=$(rfc2253ize "$EMAIL")"
71 if [ -n "$COUNTRY" ]; then
72 IDENTIFIER="$IDENTIFIER, C=$(rfc2253ize "$COUNTRY")"
75 tmpdir=$(mktemp -d -t silcd.XXXXXX)
77 silcd --create-key-pair="$tmpdir" --identifier="$IDENTIFIER"
78 mkdir -p "$(dirname "$PUBLIC_KEY")" "$(dirname "$PRIVATE_KEY")"
79 mv -f "$tmpdir/silcd.pub" "$PUBLIC_KEY"
80 mv -f "$tmpdir/silcd.prv" "$PRIVATE_KEY"
81 chmod 0600 "$PRIVATE_KEY"
92 VALUE="$(echo "$VALUE" | sed -e 's,/,\\/,g;s,",\\\\",g')"
93 sed -i -e "s/\([^#]*$KEY *= *\"\)[^\"]*\(\"\)/\1$VALUE\2/" "$FILE"
96 update_config_file() {
97 retrieve_debconf_answers
98 IP="$(getent hosts "$HOST_NAME" | awk '{print $1}')"
102 zcat "$DEFAULT_CONFIGFILE" > "$TEMPFILE"
104 change_setting "$TEMPFILE" ServerType "$SERVER_NAME"
105 change_setting "$TEMPFILE" hostname "$HOST_NAME"
106 change_setting "$TEMPFILE" Admin "$REAL_NAME"
107 change_setting "$TEMPFILE" AdminEmail "$EMAIL"
108 change_setting "$TEMPFILE" Location "$COUNTRY"
110 ucf --debconf-ok "$TEMPFILE" "$CONFIGFILE"
114 # silcd-primary-ip.conf
116 cat "$DEFAULT_IPCONFIGFILE" > "$TEMPFILE"
118 change_setting "$TEMPFILE" ip "$IP"
120 ucf --debconf-ok "$TEMPFILE" "$IPCONFIGFILE"
125 TEMPFILE="$(tempfile)"
126 cat "$DEFAULT_ADMINCONFIGFILE" > "$TEMPFILE"
128 change_setting "$TEMPFILE" Nick "$ADMIN_NICK"
129 change_setting "$TEMPFILE" Passphrase "$ADMIN_PASSPHRASE"
131 ucf --debconf-ok "$TEMPFILE" "$ADMINCONFIGFILE"
138 if [ "$DEBCONF_RECONFIGURE" = "1" ] ||
139 ! [ -e "$PUBLIC_KEY" -a -e "$PRIVATE_KEY" ]; then
150 abort-upgrade|abort-remove|abort-deconfigure)
154 echo "postinst called with unknown argument \`$1'" >&2
159 # We are going to start a daemon, so we need to be debconf clean.