summaryrefslogtreecommitdiff
path: root/www/apache13-fp/pkg-install
blob: 3a82a11244b313fea28b4cf00c599419df648f44 (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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#!/bin/sh
#
#	$FreeBSD$
#
# Created by: hetzels@westbend.net

PKG_BATCH=${BATCH:=NO}
PKG_USER=${PKG_USER:=apache}
PKG_GROUP=${PKG_GROUP:=apache}

PKG_PREFIX=${PKG_PREFIX}
HOST_NAME=`/bin/hostname`

AP_CGI=${PKG_PREFIX}/www/cgi-bin
AP_CONF=${PKG_PREFIX}/etc/apache
AP_DATA=${PKG_PREFIX}/www/data
AP_SHARE=${PKG_PREFIX}/share/doc/apache

FPINSTALL=${PKG_PREFIX}/frontpage/version4.0/fp_install.sh
CHANGESERVER=${PKG_PREFIX}/frontpage/version4.0/change_server.sh
FPDOCDIR=${AP_SHARE}/manual/mod/mod_frontpage
IMAGES_DIR=${AP_SHARE}/manual/images
IMAGES_VTI=${PKG_PREFIX}/www/data/images/_vti_cnf

create_user()
{
	if [ ! -x /usr/sbin/pw ]; then
		echo "*** Please add a user and a group name \`${PKG_GROUP}' before installing this package."
		exit 69
	fi

	if ! pw show group ${PKG_GROUP} -q > /dev/null; then
		gid=80
		while pw show group -g ${gid} -q > /dev/null; do
			gid=`expr ${gid} + 1`
		done
		if ! pw add group ${PKG_GROUP} -g ${gid}; then
			e=$?
			echo "*** Failed to add group \`${PKG_GROUP}'.  Please add it manually."
			exit ${e}
		fi
		echo "*** Added group \`${PKG_GROUP}' (id ${gid})."
	else
		gid=`pw show group ${PKG_GROUP} 2> /dev/null | cut -d: -f3`
	fi

	if [ -x /sbin/nologin ]; then
		shell="/sbin/nologin"
	else
		shell="/nonexistent"
	fi

	if ! pw show user ${PKG_USER} -q > /dev/null; then
		uid=80
		while pw show user -u ${uid} -q > /dev/null; do
			uid=`expr ${uid} + 1`
		done
		if ! pw add user ${PKG_USER} -u ${uid} -g ${gid} \
				-d "${PKG_PREFIX}/www/data" \
				-c "The Apache Web Server" \
				-s "${shell}" -p "*" ; then
			e=$?
			echo "*** Failed to add user \`${PKG_USER}'. Please add it manually."
			exit ${e}
		fi
		echo "*** Added user \`${PKG_USER}' (id ${uid})"
	fi
}
		
create_apache_lang_doc ()
{
	/bin/cat ${AP_SHARE}/index.html.en-dist | \
	   /usr/bin/sed -e 's;@@HOSTNAME@@;'${HOST_NAME}';' \
	   > ${AP_SHARE}/index.html.en
}

create_apache_doc_root ()
{
    if [ ! -d ${AP_CGI} ]; then
                /bin/cp -rp ${AP_CGI}.default ${AP_CGI}
    fi

    if [ ! -d ${AP_DATA} ]; then
	/bin/mkdir -p ${AP_DATA}/images
	for file in apache_pb.gif fplogo.gif powerlogo.gif
	{
	    /bin/cp -rp ${IMAGES_DIR}/${file} ${AP_DATA}/images
	}
	/bin/cp -rp ${AP_SHARE}/index.html.en ${AP_DATA}/index.html.en
    fi
}

fix_frontpage_scripts ()
{
    /bin/cat ${FPINSTALL}-dist | \
	/usr/bin/sed	-e 's;PREFIX;'${PKG_PREFIX}';' \
			-e 's;MOD_FPDOCDIR;'${FPDOCDIR}';' \
	> ${FPINSTALL}
    /bin/cat ${CHANGESERVER}-dist | \
	/usr/bin/sed	-e 's;PREFIX;'${PKG_PREFIX}';' \
	> ${CHANGESERVER}
    /bin/chmod 555 ${CHANGESERVER} ${FPINSTALL}
    /usr/sbin/chown bin ${CHANGESERVER} ${FPINSTALL}
}

fix_httpd_conf ()
{
    if [ ! -f ${AP_CONF}/httpd.conf ] ; then
	/bin/cat ${AP_CONF}/httpd.conf.default | \
	    /usr/bin/sed -e 's;@@HOSTNAME@@;'${HOST_NAME}';' \
	    > ${AP_CONF}/httpd.conf
    fi

    for file in mime.types magic srm.conf access.conf
    {
	if [ ! -f ${AP_CONF}/${file} ]; then
	    cp -rp ${AP_CONF}/${file}.default ${AP_CONF}/${file}
	fi
    }
}

#Add the appropriate comment to the images/_vti_cnf file.
comment_files ()
{
    if [ -d ${IMAGES_VTI} ]; then 
	if [ -f ${IMAGES_VTI}/apache_pb.gif ] && \
	   [ ! "`grep description ${IMAGES_VTI}/apache_pb.gif`" ] ; then
	    /bin/echo "vti_description:SW|Apache Webserver" >> ${IMAGES_VTI}/apache_pb.gif 
	fi
	if [ -f ${IMAGES_VTI}/fplogo.gif ] && \
	   [ ! "`grep description ${IMAGES_VTI}/fplogo.gif`" ] ; then
	    /bin/echo "vti_description:SW|Created with Microsoft FrontPage 2000" >> ${IMAGES_VTI}/fplogo.gif 
	fi
	if [ -f ${IMAGES_VTI}/powerlogo.gif ] && \
	   [ ! "`grep description ${IMAGES_VTI}/powerlogo.gif`" ] ; then
	    /bin/echo "vti_description:SW|Powered by FreeBSD" >> ${IMAGES_VTI}/powerlogo.gif
	fi
    fi
}

case $2 in
    PRE-INSTALL)
	create_user
	;;
    POST-INSTALL)
	# If we are not in batch mode then run the FP install script.
        if [ "${PKG_BATCH}" = "NO" ]; then
	    create_apache_lang_doc
	    create_apache_doc_root
	    fix_frontpage_scripts
	    fix_httpd_conf
	    ${FPINSTALL}
	    comment_files
	fi
	;;

esac