aboutsummaryrefslogtreecommitdiffstats
path: root/www/squid30/pkg-install
blob: 3b16eee43fdabb5b16d90e10ce7e4e80d41cbb4c (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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/bin/sh
#
# $FreeBSD$
#

PATH=/bin:/usr/bin:/usr/sbin
pkgname=$1
squid_base=${PKG_PREFIX:-/usr/local}/squid
squid_confdir=${PKG_PREFIX:-/usr/local}/etc/squid
squid_user=${SQUID_UID:=squid}
squid_group=${SQUID_GID:=squid}
squid_gid=3128
squid_uid=3128

case $2 in
PRE-INSTALL)
    echo "===> Pre-installation configuration for ${pkgname}"
    if ! pw groupshow ${squid_group} -q >/dev/null ; then
        while pw groupshow -g ${squid_gid} -q >/dev/null; do
            squid_gid=`expr ${squid_gid} + 1`
        done
        echo "There is no group '${squid_group}' on this system, so I will try to create it:"
        if ! pw groupadd ${squid_group} -g ${squid_gid} -q ; then
            echo "Failed to create group \"${squid_group}\"!" >&2
            echo "Please create it manually." >&2
            exit 1
        else
            echo "Group '${squid_group}' created successfully:"
        fi
    else
        echo "I will use the existing group '${squid_group}':"
    fi
    pw groupshow ${squid_group}
    if ! pw usershow ${squid_user} -q >/dev/null ; then
        while pw usershow -u ${squid_uid} -q >/dev/null; do
            squid_uid=`expr ${squid_uid} + 1`
        done
        echo "There is no account '${squid_user}' on this system, so I will try to create it:"
        if ! pw useradd ${squid_user} -u ${squid_uid} -q \
            -c "squid caching-proxy pseudo user" -g ${squid_group} \
            -d "${squid_base}" -s "/sbin/nologin" -h - ; then
            echo "Failed to create user '${squid_user}'!" >&2
            echo "Please create it manually." >&2
            exit 1
        else
            echo "User '${squid_user}' created successfully:"
        fi
    else
        echo "I will use the existing user '${squid_user}':"
    fi
    pw usershow ${squid_user}
    for dir in cache logs; do
    if [ ! -d ${squid_base}/${dir} ]; then
        echo "Creating ${squid_base}/${dir}..."
        install -d -o ${squid_user} -g ${squid_group} \
            -m 0750 ${squid_base}/${dir}
    fi
    done
    if [ ! -d ${squid_confdir} ]; then
        echo "Creating ${squid_confdir}..."
        install -d -o root -g ${squid_group} \
            -m 0750 ${squid_confdir}
    fi
    ;;
POST-INSTALL)
    for file in mime.conf squid.conf; do
        if [ ! -f ${squid_confdir}/${file} \
            -a -f ${squid_confdir}/${file}.default ]; then
        echo "Creating ${file} from default..."
        install -c -o root -g ${squid_group} -m 0640 \
            ${squid_confdir}/${file}.default ${squid_confdir}/${file}
    fi
    done

    echo "===> Post-installation informations for ${pkgname}"
    echo ""
    echo "     o You can find the configuration files for this package"
    echo "       in the directory ${squid_confdir}."
    echo ""
    echo "     o A cache directory has been created in ${squid_base}/cache."
    echo "       Log files will be written to ${squid_base}/logs."
    echo ""
    echo "     o The default configuration will deny everyone access to the"
    echo "       proxy service. Edit the \"http_access\" directives in"
    echo "       ${squid_confdir}/squid.conf to suit your needs."
    echo ""
    echo "     o If you never ran squid on this system before, you need to"
    echo "       initialize the cache directory by running \"squid -z\""
    echo "       as 'root' or '${squid_user}' before starting squid."
    echo ""
    tput md
    echo "     *** UPDATE NOTICE ***"
    echo ""
    echo "     Starting with version 2.5.4_6, all helper applications are"
    echo "     installed to ${PKG_PREFIX}/libexec/squid instead of"
    echo "     ${PKG_PREFIX}/libexec."
    echo "     Please check your squid.conf and update it if necessary."
    tput me
    echo ""
    ;;
*)
    exit 64
    ;;
esac
exit 0