File: micro-httpd.postinst

package info (click to toggle)
micro-httpd 20051212-12
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 160 kB
  • ctags: 110
  • sloc: ansic: 695; sh: 135; makefile: 74
file content (116 lines) | stat: -rwxr-xr-x 2,087 bytes parent folder | download
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
106
107
108
109
110
111
112
113
114
115
116
#!/bin/sh

set -e

PATH="/sbin:/bin:/usr/sbin:/usr/bin"
PACKAGE=$(basename $0 | sed 's/\..*//')
WWWDIR=/var/www
conf=/etc/inetd.conf
pkgdir=/usr/share/$PACKAGE
port="www"
entry="$port\tstream\ttcp\tnowait nobody:www-data\t/usr/sbin/tcpd /usr/sbin/$PACKAGE $WWWDIR"

Debhelper ()
{
    :
    #DEBHELPER#
}

Warn ()
{
    echo "$*" >&2
}

IsInetd ()
{
    [ -x /usr/sbin/update-inetd ]
}

IsInetdConf ()
{
    [ -f $conf ]
}

IsInInetd ()
{
    [ -f $conf ] || return 10

    #  Debian may have inetd.conf entry already
    grep -q "^[[:space:]]*$port.*$PACKAGE" $conf ||

    #  check for other PORT alias name as well
    grep -q "^[[:space:]]*(http|80)[[:space:]].*$PACKAGE" $conf
}

IsConflictInetd ()
{
    #  Check if some other service already uses PORT
    grep -q "^[[:space:]#]*$port" $conf
}

HttpdWarning ()
{
    # There isn't much point of inetd if apache already installed and
    # occupies port 80

    if ls /etc/init.d/apache* > /dev/null 2>&1 ; then
        Warn "$0: [WARN] Apache found. $PACKAGE $conf uses port '$port'" \
             "which may be same as in Apache (you may need to change $PACKAGE port)"
    fi
}

InetdName ()
{
    local name=

    if [ -f /etc/init.d/inetutils-inetd ]; then
	name=inetutils-inetd
    elif [ -f /etc/init.d/openbsd-inetd ]; then
        name="openbsd-inetd"
    elif [ -f /etc/init.d/rlinetd ]; then
        name="rlinetd"
    fi

    [ ! "$name" ] || echo $name
}

InstallInetd ()
{
    Warn "$0: adding new $conf entry"
    update-inetd --group STANDARD --add "$entry"

    #  This directory must be there

    [ ! -d $WWWDIR ] && mkdir -p $WWWDIR

    local name=$(InetdName)

    [ ! "$name" ] || invoke-rc.d $name reload
}

MainInetd ()
{
    if [ "$1" = "install" ] || [ "$1" = "configure" ]
    then
        if IsConflictInetd ; then
            Warn "$PACKAGE: [WARNING] Not installing to $conf" \
		"due to existing '$port' entry"
        else
	    IsInInetd || InstallInetd
            HttpdWarning
        fi
    fi
}

Main ()
{
    if IsInetd ; then
	MainInetd "$@"
    fi

    Debhelper
}

Main "$@"

# End of file