aboutsummaryrefslogtreecommitdiffstats
path: root/net/silc-server/pkg-install
blob: 73788f8030a556f3b4ff1b53d4b4516bd0a98b25 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/bin/sh
# $FreeBSD$

# based on original from op port, written by Cyrille Lefevre
# <clefevre@citeweb.net>

[ $# != 2 ] && exit 1
PKGNAME=$1
ACTION=$2


CONF_DIR=${PKG_PREFIX}/etc/silc

SILC_DAEMON=${PKG_PREFIX}/sbin/silcd
KEY_FILES="silcd.prv silcd.pub"

CONF_FILE=silcd.conf
CONF_OWN=root
CONF_GRP=wheel
CONF_MODE=0600

SAMP_SUFX=.sample

INSTALL=install
CMP=cmp
FMT=fmt
RM=rm
RMDIR=rmdir

INSTALL_DIR="${INSTALL} -d -o root -g wheel -m 755"

case "$ACTION" in

POST-INSTALL)
    if [ -f "${CONF_DIR}/${CONF_FILE}" ]
    then
        echo "$PKGNAME: Will not overwrite existing ${CONF_DIR}/${CONF_FILE} configuration file."
    else
        ${INSTALL} -c -o ${CONF_OWN} -g ${CONF_GRP} -m ${CONF_MODE} \
            ${CONF_DIR}/${CONF_FILE}${SAMP_SUFX} \
            ${CONF_DIR}/${CONF_FILE}
    fi
    if [ -f ${CONF_DIR}/silcd.prv -o -f ${CONF_DIR}/silcd.pub ]
    then
        echo "$PKGNAME: Will not overwrite existing PUBLIC KEY PAIRS in ${CONF_DIR}."
        echo "$PKGNAME: Remove them if you both want new keys and know what you are doing, deinstall this package and install again." | ${FMT}
        echo "$PKGNAME: To remove the old keys:" 
        for key_file in ${KEY_FILES}
        do
            [ -f ${CONF_DIR}/${key_file} ] && echo "$PKGNAME: rm -f ${CONF_DIR}/${key_file}"
        done
    else
        ${SILC_DAEMON} -C ${CONF_DIR}
    fi
    ${INSTALL_DIR} ${PKG_PREFIX}/silc/logs
    ;;

DEINSTALL)
    if ${CMP} -s ${CONF_DIR}/${CONF_FILE}${SAMP_SUFX} \
          ${CONF_DIR}/${CONF_FILE}; then
        ${RM} -f ${CONF_DIR}/${CONF_FILE}
    else
        echo "$PKGNAME: Will not remove existing ${CONF_DIR}/${CONF_FILE} configuration file."
        echo "$PKGNAME: Remove it manually if you know what you are doing:"
        echo "$PKGNAME: rm -f ${CONF_DIR}/${CONF_FILE}"
    fi
    echo "$PKGNAME: Will not remove remaining PUBLIC KEY PAIRS."
    echo "$PKGNAME: If you want to remove any remaining PUBLIC KEY PAIRS:"
    for key_file in ${KEY_FILES}
    do
        [ -f ${CONF_DIR}/${key_file} ] && echo "$PKGNAME: rm -f ${CONF_DIR}/${key_file}"
    done
    echo "$PKGNAME: Also, do not forget to 'rmdir ${CONF_DIR} 2>/dev/null'"

    ${RMDIR} ${PKG_PREFIX}/silc/logs 2>/dev/null
    if [ -d ${PKG_PREFIX}/silc ]
    then
        ${RMDIR} ${PKG_PREFIX}/silc 2>/dev/null || echo "$PKGNAME: Will not remove silc server logs. If permanently removing the port, 'rm -Rf ${PKG_PREFIX}/silc'"
    fi
    ;;

PRE-INSTALL|POST-DEINSTALL)
    ;;

*)
    exit 1
    ;;
esac

exit