File: mono-xsp4.postinst

package info (click to toggle)
xsp 4.2-2.4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 5,176 kB
  • sloc: cs: 13,500; sh: 12,082; xml: 8,279; makefile: 650; perl: 619; ansic: 299; php: 6
file content (122 lines) | stat: -rw-r--r-- 2,502 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
117
118
119
120
121
122
#!/bin/bash
set -e

. /usr/share/debconf/confmodule
db_version 2.0

xsp4_default="/etc/default/mono-xsp4"
NAME=mono-xsp4
DESC="XSP 4 WebServer"
CFGDIR=/etc/xsp4
VIRTUALFILE=$CFGDIR/debian.webapp

# create file if it doesn't exist
if [ ! -e $xsp4_default ]; then
	cat > $xsp4_default <<-END
	# Defaults for mono-xsp4, official version
	# sourced by /etc/init.d/mono-xsp4
	
	# Should we start it?
	start_boot=true
	
	# User and group by default
	user=www-data
	group=www-data
	
	# Default port
	port=8084
	address=0.0.0.0
	
	# Directory for config files
	config_files=/etc/xsp4
	END
fi

update_port() {
    db_get xsp4/xsp4_port || true
    R=$RET
    echo "Using Mono XSP 4 port: $R"
    sed "s/port=.*/port=$R/g" $xsp4_default > $tempfile
    cp -f $tempfile $xsp4_default
}

update_bind() {
    db_get xsp4/xsp4_bind || true
    R=$RET
    echo "Binding Mono XSP 4 address: $R"
    sed "s/address=.*/address=$R/g" $xsp4_default > $tempfile
    cp -f $tempfile $xsp4_default
}

should_start() {
    if [ -e $xsp4_default ]; then
	. $xsp4_default
        if [ "$start_boot" != "true" ]; then
	    return 1
        fi
    else
        echo "mono-xsp4: Not started, you need a valid and complete $xsp4_default"
        return 1
    fi

    if [ ! -e $VIRTUALFILE -o `cat $VIRTUALFILE | wc -l` = "2" ]; then
	echo "mono-xsp4: Not started, you need asp.net-examples/monodoc-http or an ASP.NET application"
	return 1
    fi 
    
    if [ -f /var/run/$NAME.pid ]; then
	# Are we really running xsp4?
	xsp4_pid=`cat /var/run/$NAME.pid`
	xsp4_ps=`ps -p $xsp4_pid | wc -l`
	if [ "$xsp4_ps" != "2" ]; then
	    return 0
	else
	    return 1
	fi
    else
	return 1
    fi
    
    return 1
}

case "$1" in
    configure)
	tempfile=$(mktemp)
	
	# Configure autostart, but don't prevent the init script
	# from starting it manually.
	autostart="true"
	db_get xsp4/xsp4_autostart || true
	if [ "$RET" = "true" ]; then	    
	    if [ -x "/etc/init.d/mono-xsp4" ]; then
		update-rc.d mono-xsp4 defaults > /dev/null 2>&1 || true
	    fi
	else
	    update-rc.d -f mono-xsp4 remove > /dev/null 2>&1  || true
	fi

	# If default file exists, configure the port and address
	if [ -f $xsp4_default ]; then
	    update_port
	    update_bind
	fi

	mono-xsp4-update
	if [ "$RET" = "true" ]; then
	    if should_start -a $autostart = "true" ; then
		if which invoke-rc.d >/dev/null 2>&1; then
		    invoke-rc.d mono-xsp4 start
		else
		    /etc/init.d/mono-xsp4 start
		fi
	    fi
	fi

	rm $tempfile
	;;
esac

#DEBHELPER#

exit 0