/[gentoo-x86]/eclass/webapp.eclass
Gentoo

Diff of /eclass/webapp.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.26 Revision 1.41
1# Copyright 1999-2004 Gentoo Foundation 1# Copyright 1999-2006 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/webapp.eclass,v 1.26 2004/06/28 16:00:29 stuart Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/webapp.eclass,v 1.41 2006/05/19 19:24:21 flameeyes Exp $
4# 4#
5# eclass/webapp.eclass 5# eclass/webapp.eclass
6# Eclass for installing applications to run under a web server 6# Eclass for installing applications to run under a web server
7# 7#
8# Part of the implementation of GLEP #11 8# Part of the implementation of GLEP #11
9# 9#
10# Author(s) Stuart Herbert <stuart@gentoo.org> 10# Author(s) Stuart Herbert <stuart@gentoo.org>
11# Renat Lumpau <rl03@gentoo.org>
12# Gunnar Wrobel <wrobel@gentoo.org>
11# 13#
12# ------------------------------------------------------------------------ 14# ------------------------------------------------------------------------
13# 15#
14# The master copy of this eclass is held in Stu's subversion repository. 16# The master copy of this eclass is held in our subversion repository.
17# http://svn.gnqs.org/projects/vhost-tools/browser/
15# 18#
16# If you make changes to this file and don't tell Stu, chances are that 19# If you make changes to this file and don't tell us, chances are that
17# your changes will be overwritten the next time Stu releases a new version 20# your changes will be overwritten the next time we release a new version
18# of webapp-config. 21# of webapp-config.
19# 22#
20# ------------------------------------------------------------------------ 23# ------------------------------------------------------------------------
21 24
22ECLASS=webapp
23INHERITED="$INHERITED $ECLASS"
24SLOT="${PVR}" 25SLOT="${PVR}"
25IUSE="$IUSE vhosts" 26IUSE="vhosts"
26DEPEND="$DEPEND >=net-www/webapp-config-1.7 app-portage/gentoolkit" 27DEPEND="app-admin/webapp-config"
28RDEPEND="${DEPEND}"
27 29
28EXPORT_FUNCTIONS pkg_postinst pkg_setup src_install pkg_prerm 30EXPORT_FUNCTIONS pkg_postinst pkg_setup src_install pkg_prerm
29 31
30INSTALL_DIR="/$PN" 32INSTALL_DIR="/${PN}"
31IS_UPGRADE=0 33IS_UPGRADE=0
32IS_REPLACE=0 34IS_REPLACE=0
33 35
34INSTALL_CHECK_FILE="installed_by_webapp_eclass" 36INSTALL_CHECK_FILE="installed_by_webapp_eclass"
35 37
36ETC_CONFIG="/etc/vhosts/webapp-config" 38ETC_CONFIG="${ROOT}/etc/vhosts/webapp-config"
39WEBAPP_CONFIG="${ROOT}/usr/sbin/webapp-config"
40
41# ------------------------------------------------------------------------
42# INTERNAL FUNCTION - USED BY THIS ECLASS ONLY
43#
44# Load the config file /etc/vhosts/webapp-config
45#
46# Supports both the old bash version, and the new python version
47#
48# ------------------------------------------------------------------------
49
50function webapp_read_config ()
51{
52 if has_version '>=app-admin/webapp-config-1.50'; then
53 ENVVAR=$(${WEBAPP_CONFIG} --query ${PN} ${PVR}) || die "Could not read settings from webapp-config!"
54 eval ${ENVVAR}
55 else
56 . ${ETC_CONFIG} || die "Unable to read ${ETC_CONFIG}"
57 fi
58}
37 59
38# ------------------------------------------------------------------------ 60# ------------------------------------------------------------------------
39# INTERNAL FUNCTION - USED BY THIS ECLASS ONLY 61# INTERNAL FUNCTION - USED BY THIS ECLASS ONLY
40# 62#
41# Check whether a specified file exists within the image/ directory 63# Check whether a specified file exists within the image/ directory
48 70
49function webapp_checkfileexists () 71function webapp_checkfileexists ()
50{ 72{
51 local my_prefix 73 local my_prefix
52 74
53 [ -n "$2" ] && my_prefix="$2/" || my_prefix= 75 [ -n "${2}" ] && my_prefix="${2}/" || my_prefix=
54 76
55 if [ ! -e "${my_prefix}$1" ]; then 77 if [ ! -e "${my_prefix}${1}" ]; then
56 msg="ebuild fault: file '$1' not found" 78 msg="ebuild fault: file '${1}' not found"
57 eerror "$msg" 79 eerror "$msg"
58 eerror "Please report this as a bug at http://bugs.gentoo.org/" 80 eerror "Please report this as a bug at http://bugs.gentoo.org/"
59 die "$msg" 81 die "$msg"
60 fi 82 fi
61} 83}
66 88
67function webapp_check_installedat 89function webapp_check_installedat
68{ 90{
69 local my_output 91 local my_output
70 92
71 /usr/sbin/webapp-config --show-installed -h localhost -d "$INSTALL_DIR" 2> /dev/null 93 ${WEBAPP_CONFIG} --show-installed -h localhost -d "${INSTALL_DIR}" 2> /dev/null
72} 94}
73 95
74# ------------------------------------------------------------------------ 96# ------------------------------------------------------------------------
75# INTERNAL FUNCTION - USED BY THIS ECLASS ONLY 97# INTERNAL FUNCTION - USED BY THIS ECLASS ONLY
76# ------------------------------------------------------------------------
77
78function webapp_import_config ()
79{
80 if [ -z "${MY_HTDOCSDIR}" ]; then
81 . /etc/conf.d/webapp-config
82 fi
83
84 if [ -z "${MY_HTDOCSDIR}" ]; then
85 libsh_edie "/etc/conf.d/webapp-config not imported"
86 fi
87}
88
89# ------------------------------------------------------------------------
90# INTERNAL FUNCTION - USED BY THIS ECLASS ONLY
91# 98#
92# ------------------------------------------------------------------------ 99# ------------------------------------------------------------------------
93 100
94function webapp_strip_appdir () 101function webapp_strip_appdir ()
95{ 102{
96 local my_stripped="$1" 103 local my_stripped="${1}"
97 echo "$1" | sed -e "s|${MY_APPDIR}/||g;" 104 echo "${1}" | sed -e "s|${MY_APPDIR}/||g;"
98} 105}
99 106
100function webapp_strip_d () 107function webapp_strip_d ()
101{ 108{
102 echo "$1" | sed -e "s|${D}||g;" 109 echo "${1}" | sed -e "s|${D}||g;"
103} 110}
104 111
105function webapp_strip_cwd () 112function webapp_strip_cwd ()
106{ 113{
107 local my_stripped="$1" 114 local my_stripped="${1}"
108 echo "$1" | sed -e 's|/./|/|g;' 115 echo "${1}" | sed -e 's|/./|/|g;'
109} 116}
110 117
111# ------------------------------------------------------------------------ 118# ------------------------------------------------------------------------
112# EXPORTED FUNCTION - FOR USE IN EBUILDS 119# EXPORTED FUNCTION - FOR USE IN EBUILDS
113# 120#
116# @param $1 - config file 123# @param $1 - config file
117# ------------------------------------------------------------------------ 124# ------------------------------------------------------------------------
118 125
119function webapp_configfile () 126function webapp_configfile ()
120{ 127{
128 local m=""
129 for m in "$@" ; do
121 webapp_checkfileexists "$1" "$D" 130 webapp_checkfileexists "${m}" "${D}"
122 echo $1 131
123 local MY_FILE="`webapp_strip_appdir \"$1\"`" 132 local MY_FILE="$(webapp_strip_appdir "${m}")"
124 echo $MY_FILE 133 MY_FILE="$(webapp_strip_cwd "${MY_FILE}")"
125 134
126 einfo "(config) $MY_FILE" 135 einfo "(config) ${MY_FILE}"
127 echo "$MY_FILE" >> ${D}${WA_CONFIGLIST} 136 echo "${MY_FILE}" >> ${D}/${WA_CONFIGLIST}
137 done
128} 138}
129 139
130# ------------------------------------------------------------------------ 140# ------------------------------------------------------------------------
131# EXPORTED FUNCTION - FOR USE IN EBUILDS 141# EXPORTED FUNCTION - FOR USE IN EBUILDS
132# 142#
136# @param $1 - the script to run 146# @param $1 - the script to run
137# ------------------------------------------------------------------------ 147# ------------------------------------------------------------------------
138 148
139function webapp_hook_script () 149function webapp_hook_script ()
140{ 150{
141 webapp_checkfileexists "$1" 151 webapp_checkfileexists "${1}"
142 152
143 einfo "(hook) $1" 153 einfo "(hook) ${1}"
144 cp "$1" "${D}${MY_HOOKSCRIPTSDIR}/`basename $1`" || die "Unable to install $1 into ${D}${MY_HOOKSCRIPTSDIR}/" 154 cp "${1}" "${D}/${MY_HOOKSCRIPTSDIR}/$(basename "${1}")" || die "Unable to install ${1} into ${D}/${MY_HOOKSCRIPTSDIR}/"
145 chmod 555 "${D}${MY_HOOKSCRIPTSDIR}/`basename $1`" 155 chmod 555 "${D}/${MY_HOOKSCRIPTSDIR}/$(basename "${1}")"
146} 156}
147 157
148# ------------------------------------------------------------------------ 158# ------------------------------------------------------------------------
149# EXPORTED FUNCTION - FOR USE IN EBUILDS 159# EXPORTED FUNCTION - FOR USE IN EBUILDS
150# 160#
152# 162#
153# @param $1 - language code (use 'en' for now) 163# @param $1 - language code (use 'en' for now)
154# @param $2 - the file to install 164# @param $2 - the file to install
155# ------------------------------------------------------------------------ 165# ------------------------------------------------------------------------
156 166
157function webapp_postinst_txt 167function webapp_postinst_txt ()
158{ 168{
159 webapp_checkfileexists "$2" 169 webapp_checkfileexists "${2}"
160 170
161 einfo "(rtfm) $2 (lang: $1)" 171 einfo "(info) ${2} (lang: ${1})"
162 cp "$2" "${D}${MY_APPDIR}/postinst-$1.txt" 172 cp "${2}" "${D}/${MY_APPDIR}/postinst-${1}.txt"
163} 173}
164 174
165# ------------------------------------------------------------------------ 175# ------------------------------------------------------------------------
166# EXPORTED FUNCTION - FOR USE IN EBUILDS 176# EXPORTED FUNCTION - FOR USE IN EBUILDS
167# 177#
168# Identify a script file (usually, but not always PHP or Perl) which is 178# Install a text file containing post-upgrade instructions.
169# 179#
170# Files in this list may be modified to #! the required CGI engine when 180# @param $1 - language code (use 'en' for now)
171# installed by webapp-config tool in the future. 181# @param $2 - the file to install
172#
173# @param $1 - the cgi engine to use
174# @param $2 - the script file that could run under a cgi-bin
175#
176# ------------------------------------------------------------------------ 182# ------------------------------------------------------------------------
177 183
178function webapp_runbycgibin () 184function webapp_postupgrade_txt ()
179{ 185{
180 webapp_checkfileexists "$2" "$D" 186 webapp_checkfileexists "${2}"
181 local MY_FILE="`webapp_strip_appdir \"$2\"`"
182 MY_FILE="`webapp_strip_cwd \"$MY_FILE\"`"
183 187
184 einfo "(cgi-bin) $1 - $MY_FILE" 188 einfo "(info) ${2} (lang: ${1})"
185 echo "\"$1\" \"$MY_FILE\"" >> "${D}${WA_RUNBYCGIBINLIST}" 189 cp "${2}" "${D}/${MY_APPDIR}/postupgrade-${1}.txt"
186} 190}
187 191
188# ------------------------------------------------------------------------ 192# ------------------------------------------------------------------------
189# EXPORTED FUNCTION - FOR USE IN EBUILDS 193# EXPORTED FUNCTION - FOR USE IN EBUILDS
190# 194#
191# Identify a file which must be owned by the webserver's user:group 195# Identify a file which must be owned by the webserver's user:group
192# settings. 196# settings.
193# 197#
194# The ownership of the file is NOT set until the application is installed 198# The ownership of the file is NOT set until the application is installed
195# using the webapp-config tool. 199# using the webapp-config tool.
196# 200#
197# @param $1 - file to be owned by the webserver user:group combo 201# @param $1 - file to be owned by the webserver user:group combo
198# 202#
199# ------------------------------------------------------------------------ 203# ------------------------------------------------------------------------
200 204
201function webapp_serverowned () 205function webapp_serverowned ()
202{ 206{
207 local a=""
208 local m=""
209 if [ "${1}" = "-R" ]; then
210 shift
211 for m in "$@" ; do
212 for a in $(find ${D}/${m}); do
213 a=${a/${D}\/\///}
214 webapp_checkfileexists "${a}" "$D"
215 local MY_FILE="$(webapp_strip_appdir "${a}")"
216 MY_FILE="$(webapp_strip_cwd "${MY_FILE}")"
217
218 einfo "(server owned) ${MY_FILE}"
219 echo "${MY_FILE}" >> "${D}/${WA_SOLIST}"
220 done
221 done
222 else
223 for m in "$@" ; do
203 webapp_checkfileexists "$1" "$D" 224 webapp_checkfileexists "${m}" "$D"
204 local MY_FILE="`webapp_strip_appdir \"$1\"`" 225 local MY_FILE="$(webapp_strip_appdir "${m}")"
205 226 MY_FILE="$(webapp_strip_cwd "${MY_FILE}")"
227
206 einfo "(server owned) $MY_FILE" 228 einfo "(server owned) ${MY_FILE}"
207 echo "$MY_FILE" >> "${D}${WA_SOLIST}" 229 echo "${MY_FILE}" >> "${D}/${WA_SOLIST}"
230 done
231 fi
208} 232}
209 233
210# ------------------------------------------------------------------------ 234# ------------------------------------------------------------------------
211# EXPORTED FUNCTION - FOR USE IN EBUILDS 235# EXPORTED FUNCTION - FOR USE IN EBUILDS
212# 236#
221# config file's name 245# config file's name
222# ------------------------------------------------------------------------ 246# ------------------------------------------------------------------------
223 247
224function webapp_server_configfile () 248function webapp_server_configfile ()
225{ 249{
226 webapp_checkfileexists "$2" 250 webapp_checkfileexists "${2}"
227 251
228 # sort out what the name will be of the config file 252 # sort out what the name will be of the config file
229 253
230 local my_file 254 local my_file
231 255
232 if [ -z "$3" ]; then 256 if [ -z "${3}" ]; then
233 my_file="$1-`basename $2`" 257 my_file="${1}-$(basename "${2}")"
234 else 258 else
235 my_file="$1-$3" 259 my_file="${1}-${3}"
236 fi 260 fi
237 261
238 # warning: 262 # warning:
239 # 263 #
240 # do NOT change the naming convention used here without changing all 264 # do NOT change the naming convention used here without changing all
241 # the other scripts that also rely upon these names 265 # the other scripts that also rely upon these names
242 266
243 einfo "($1) config file '$my_file'" 267 einfo "(${1}) config file '${my_file}'"
244 cp "$2" "${D}${MY_SERVERCONFIGDIR}/${my_file}" 268 cp "${2}" "${D}/${MY_SERVERCONFIGDIR}/${my_file}"
245} 269}
246 270
247# ------------------------------------------------------------------------ 271# ------------------------------------------------------------------------
248# EXPORTED FUNCTION - FOR USE IN EBUILDS 272# EXPORTED FUNCTION - FOR USE IN EBUILDS
249# 273#
256# a new db from scratch) 280# a new db from scratch)
257# ------------------------------------------------------------------------ 281# ------------------------------------------------------------------------
258 282
259function webapp_sqlscript () 283function webapp_sqlscript ()
260{ 284{
261 webapp_checkfileexists "$2" 285 webapp_checkfileexists "${2}"
262 286
263 # create the directory where this script will go 287 # create the directory where this script will go
264 # 288 #
265 # scripts for specific database engines go into their own subdirectory 289 # scripts for specific database engines go into their own subdirectory
266 # just to keep things readable on the filesystem 290 # just to keep things readable on the filesystem
267 291
268 if [ ! -d "${D}${MY_SQLSCRIPTSDIR}/$1" ]; then 292 if [ ! -d "${D}/${MY_SQLSCRIPTSDIR}/${1}" ]; then
269 mkdir -p "${D}${MY_SQLSCRIPTSDIR}/$1" || libsh_die "unable to create directory ${D}${MY_SQLSCRIPTSDIR}/$1" 293 mkdir -p "${D}/${MY_SQLSCRIPTSDIR}/${1}" || die "unable to create directory ${D}/${MY_SQLSCRIPTSDIR}/${1}"
270 fi 294 fi
271 295
272 # warning: 296 # warning:
273 # 297 #
274 # do NOT change the naming convention used here without changing all 298 # do NOT change the naming convention used here without changing all
275 # the other scripts that also rely upon these names 299 # the other scripts that also rely upon these names
276 300
277 # are we dealing with an 'upgrade'-type script? 301 # are we dealing with an 'upgrade'-type script?
278 if [ -n "$3" ]; then 302 if [ -n "${3}" ]; then
279 # yes we are 303 # yes we are
280 einfo "($1) upgrade script from ${PN}-${PVR} to $3" 304 einfo "(${1}) upgrade script from ${PN}-${PVR} to ${3}"
281 cp "$2" "${D}${MY_SQLSCRIPTSDIR}/$1/${3}_to_${PVR}.sql" 305 cp "${2}" "${D}${MY_SQLSCRIPTSDIR}/${1}/${3}_to_${PVR}.sql"
306 chmod 600 "${D}${MY_SQLSCRIPTSDIR}/${1}/${3}_to_${PVR}.sql"
282 else 307 else
283 # no, we are not 308 # no, we are not
284 einfo "($1) create script for ${PN}-${PVR}" 309 einfo "(${1}) create script for ${PN}-${PVR}"
285 cp "$2" "${D}${MY_SQLSCRIPTSDIR}/$1/${PVR}_create.sql" 310 cp "${2}" "${D}/${MY_SQLSCRIPTSDIR}/${1}/${PVR}_create.sql"
311 chmod 600 "${D}/${MY_SQLSCRIPTSDIR}/${1}/${PVR}_create.sql"
286 fi 312 fi
287} 313}
288 314
289# ------------------------------------------------------------------------ 315# ------------------------------------------------------------------------
290# EXPORTED FUNCTION - call from inside your ebuild's src_install AFTER 316# EXPORTED FUNCTION - call from inside your ebuild's src_install AFTER
291# everything else has run 317# everything else has run
292# 318#
293# For now, we just make sure that root owns everything, and that there 319# For now, we just make sure that root owns everything, and that there
294# are no setuid files. I'm sure this will change significantly before 320# are no setuid files.
295# the final version!
296# ------------------------------------------------------------------------ 321# ------------------------------------------------------------------------
297 322
298function webapp_src_install () 323function webapp_src_install ()
299{ 324{
300 chown -R "${VHOST_DEFAULT_UID}:${VHOST_DEFAULT_GID}" "${D}/" 325 chown -R "${VHOST_DEFAULT_UID}:${VHOST_DEFAULT_GID}" "${D}/"
301 chmod -R u-s "${D}/" 326 chmod -R u-s "${D}/"
302 chmod -R g-s "${D}/" 327 chmod -R g-s "${D}/"
303 328
304 keepdir "${MY_PERSISTDIR}" 329 keepdir "${MY_PERSISTDIR}"
305 fowners "root:root" "${MY_PERSISTDIR}" 330 fowners "root:0" "${MY_PERSISTDIR}"
306 fperms 755 "${MY_PERSISTDIR}" 331 fperms 755 "${MY_PERSISTDIR}"
307 332
308 # to test whether or not the ebuild has correctly called this function 333 # to test whether or not the ebuild has correctly called this function
309 # we add an empty file to the filesystem 334 # we add an empty file to the filesystem
310 # 335 #
325 350
326function webapp_pkg_setup () 351function webapp_pkg_setup ()
327{ 352{
328 # add sanity checks here 353 # add sanity checks here
329 354
330 if [ "$SLOT+" != "${PVR}+" ]; then 355 if [ "${SLOT}+" != "${PVR}+" ]; then
356 # special case - some ebuilds *do* need to overwride the SLOT
357 if [ "${WEBAPP_MANUAL_SLOT}" != "yes" ]; then
331 die "ebuild sets SLOT, overrides webapp.eclass" 358 die "ebuild sets SLOT, overrides webapp.eclass"
359 else
360 ewarn
361 ewarn "This ebuild overrides the default SLOT behaviour for webapps"
362 ewarn "If this package installs files into the htdocs dir, this is"
363 ewarn "probably a bug in the ebuild."
364 ewarn
365 fi
332 fi 366 fi
333 367
334 # pull in the shared configuration file 368 # pull in the shared configuration file
335 369
336 G_HOSTNAME="localhost" 370 G_HOSTNAME="localhost"
337 . "${ETC_CONFIG}" || die "Unable to open file ${ETC_CONFIG}" 371 webapp_read_config
338 372
339 # are we installing a webapp-config solution over the top of a 373 # are we installing a webapp-config solution over the top of a
340 # non-webapp-config solution? 374 # non-webapp-config solution?
341 375
342 if ! use vhosts ; then 376 if ! use vhosts ; then
343 local my_dir="$VHOST_ROOT/$MY_HTDOCSBASE/$PN" 377 local my_dir="${ROOT}${VHOST_ROOT}/${MY_HTDOCSBASE}/${PN}"
344 local my_output 378 local my_output
345 379
346 if [ -d "$my_dir" ] ; then 380 if [ -d "${my_dir}" ] ; then
347 einfo "You already have something installed in $my_dir" 381 einfo "You already have something installed in ${my_dir}"
348 einfo "Are you trying to install over the top of something I cannot upgrade?" 382 einfo "Are you trying to install over the top of something I cannot upgrade?"
349 383
350 my_output="`webapp_check_installedat`" 384 my_output="$(webapp_check_installedat)"
351 385
352 if [ "$?" != "0" ]; then 386 if [ "$?" != "0" ]; then
353 387
354 # okay, whatever is there, it isn't webapp-config-compatible 388 # okay, whatever is there, it isn't webapp-config-compatible
355 ewarn 389 ewarn
356 ewarn "Whatever is in $my_dir, it's not" 390 ewarn "Whatever is in ${my_dir}, it's not"
357 ewarn "compatible with webapp-config." 391 ewarn "compatible with webapp-config."
358 ewarn 392 ewarn
359 ewarn "This ebuild may be overwriting important files." 393 ewarn "This ebuild may be overwriting important files."
360 ewarn 394 ewarn
361 elif [ "`echo $my_output | awk '{ print $1 }'`" != "$PN" ]; then 395 elif [ "$(echo ${my_output} | awk '{ print $1 }')" != "${PN}" ]; then
362 eerror "$my_dir contains $my_output" 396 eerror "${my_dir} contains ${my_output}"
363 eerror "I cannot upgrade that" 397 eerror "I cannot upgrade that"
364 die "Cannot upgrade contents of $my_dir" 398 die "Cannot upgrade contents of ${my_dir}"
365 else 399 else
366 einfo 400 einfo
367 einfo "I can upgrade the contents of $my_dir" 401 einfo "I can upgrade the contents of ${my_dir}"
368 einfo 402 einfo
369 fi 403 fi
370 fi 404 fi
371 fi 405 fi
372} 406}
373 407
374function webapp_someunusedfunction ()
375{
376 # are we emerging something that is already installed?
377
378 if [ -d "${D}${MY_APPROOT}/${MY_APPSUFFIX}" ]; then
379 # yes we are
380 ewarn "Removing existing copy of ${PN}-${PVR}"
381 rm -rf "${D}${MY_APPROOT}/${MY_APPSUFFIX}"
382 fi
383}
384
385function webapp_getinstalltype () 408function webapp_getinstalltype ()
386{ 409{
387 # or are we upgrading? 410 # or are we upgrading?
388 411
389 if ! use vhosts ; then 412 if ! use vhosts ; then
390 # we only run webapp-config if vhosts USE flag is not set 413 # we only run webapp-config if vhosts USE flag is not set
391 414
392 local my_output 415 local my_output
393 416
394 my_output="`webapp_check_installedat`" 417 my_output="$(webapp_check_installedat)"
395 418
396 if [ "$?" = "0" ] ; then 419 if [ "${?}" = "0" ] ; then
397 # something is already installed there 420 # something is already installed there
398 # 421 #
399 # make sure it isn't the same version 422 # make sure it isn't the same version
400 423
401 local my_pn="`echo $my_output | awk '{ print $1 }'`" 424 local my_pn="$(echo ${my_output} | awk '{ print $1 }')"
402 local my_pvr="`echo $my_output | awk '{ print $2 }'`" 425 local my_pvr="$(echo ${my_output} | awk '{ print $2 }')"
403 426
404 REMOVE_PKG="${my_pn}-${my_pvr}" 427 REMOVE_PKG="${my_pn}-${my_pvr}"
405 428
406 if [ "$my_pn" == "$PN" ]; then 429 if [ "${my_pn}" == "${PN}" ]; then
407 if [ "$my_pvr" != "$PVR" ]; then 430 if [ "${my_pvr}" != "${PVR}" ]; then
408 einfo "This is an upgrade" 431 einfo "This is an upgrade"
409 IS_UPGRADE=1 432 IS_UPGRADE=1
410 else 433 else
411 einfo "This is a re-installation" 434 einfo "This is a re-installation"
412 IS_REPLACE=1 435 IS_REPLACE=1
413 fi 436 fi
414 else 437 else
415 einfo "$my_ouptut is installed there" 438 einfo "${my_output} is installed there"
416 fi 439 fi
417 else 440 else
418 einfo "This is an installation" 441 einfo "This is an installation"
419 fi 442 fi
420 fi 443 fi
434 dodir "${MY_SERVERCONFIGDIR}" 457 dodir "${MY_SERVERCONFIGDIR}"
435} 458}
436 459
437function webapp_pkg_postinst () 460function webapp_pkg_postinst ()
438{ 461{
439 . "${ETC_CONFIG}" 462 webapp_read_config
440 463
441 # sanity checks, to catch bugs in the ebuild 464 # sanity checks, to catch bugs in the ebuild
442 465
443 if [ ! -f "${MY_APPDIR}/${INSTALL_CHECK_FILE}" ]; then 466 if [ ! -f "${ROOT}${MY_APPDIR}/${INSTALL_CHECK_FILE}" ]; then
444 eerror 467 eerror
445 eerror "This ebuild did not call webapp_src_install() at the end" 468 eerror "This ebuild did not call webapp_src_install() at the end"
446 eerror "of the src_install() function" 469 eerror "of the src_install() function"
447 eerror 470 eerror
448 eerror "Please log a bug on http://bugs.gentoo.org" 471 eerror "Please log a bug on http://bugs.gentoo.org"
452 eerror 475 eerror
453 die "Ebuild did not call webapp_src_install() - report to http://bugs.gentoo.org" 476 die "Ebuild did not call webapp_src_install() - report to http://bugs.gentoo.org"
454 fi 477 fi
455 478
456 # if 'vhosts' is not set in your USE flags, we install a copy of 479 # if 'vhosts' is not set in your USE flags, we install a copy of
457 # this application in /var/www/localhost/htdocs/${PN}/ for you 480 # this application in ${ROOT}/var/www/localhost/htdocs/${PN}/ for you
458 481
459 if ! use vhosts ; then 482 if ! use vhosts ; then
460 echo 483 echo
461 einfo "vhosts USE flag not set - auto-installing using webapp-config" 484 einfo "vhosts USE flag not set - auto-installing using webapp-config"
462 485
463 webapp_getinstalltype 486 webapp_getinstalltype
464 487
465 G_HOSTNAME="localhost" 488 G_HOSTNAME="localhost"
466 . "${ETC_CONFIG}"
467
468 local my_mode=-I 489 local my_mode=-I
490 webapp_read_config
469 491
470 if [ "$IS_REPLACE" = "1" ]; then 492 if [ "${IS_REPLACE}" = "1" ]; then
471 einfo "${PN}-${PVR} is already installed - replacing" 493 einfo "${PN}-${PVR} is already installed - replacing"
472 /usr/sbin/webapp-config -C -d "$INSTALL_DIR" 494 my_mode=-I
473 elif [ "$IS_UPGRADE" = "1" ]; then 495 elif [ "${IS_UPGRADE}" = "1" ]; then
474 einfo "$REMOVE_PKG is already installed - upgrading" 496 einfo "${REMOVE_PKG} is already installed - upgrading"
475 my_mode=-U 497 my_mode=-U
476 else 498 else
477 einfo "${PN}-${PVR} is not installed - using install mode" 499 einfo "${PN}-${PVR} is not installed - using install mode"
478 fi 500 fi
479 501
480 my_cmd="/usr/sbin/webapp-config $my_mode -h localhost -u root -d $INSTALL_DIR ${PN} ${PVR}" 502 my_cmd="${WEBAPP_CONFIG} ${my_mode} -h localhost -u root -d ${INSTALL_DIR} ${PN} ${PVR}"
481 einfo "Running $my_cmd" 503 einfo "Running ${my_cmd}"
482 $my_cmd 504 ${my_cmd}
483 505
484 # remove the old version 506 # remove the old version
485 # 507 #
486 # why do we do this? well ... 508 # why do we do this? well ...
487 # 509 #
490 # slot to the old version, then the old version gets left behind 512 # slot to the old version, then the old version gets left behind
491 # 513 #
492 # if USE=-vhosts, then we want to remove the old version, because 514 # if USE=-vhosts, then we want to remove the old version, because
493 # the user is relying on portage to do the magical thing for it 515 # the user is relying on portage to do the magical thing for it
494 516
495 if [ "$IS_UPGRADE" = "1" ] ; then 517 if [ "${IS_UPGRADE}" = "1" ] ; then
496 einfo "Removing old version $REMOVE_PKG" 518 einfo "Removing old version ${REMOVE_PKG}"
497 519
498 emerge -C "$CATEGORY/$REMOVE_PKG" 520 emerge -C "${REMOVE_PKG}"
499 fi 521 fi
500 else 522 else
501 # vhosts flag is on 523 # vhosts flag is on
502 # 524 #
503 # let's tell the administrator what to do next 525 # let's tell the administrator what to do next
505 einfo 527 einfo
506 einfo "The 'vhosts' USE flag is switched ON" 528 einfo "The 'vhosts' USE flag is switched ON"
507 einfo "This means that Portage will not automatically run webapp-config to" 529 einfo "This means that Portage will not automatically run webapp-config to"
508 einfo "complete the installation." 530 einfo "complete the installation."
509 einfo 531 einfo
510 einfo "To install $PN-$PVR into a virtual host, run the following command:" 532 einfo "To install ${PN}-${PVR} into a virtual host, run the following command:"
511 einfo 533 einfo
512 einfo " webapp-config -I -h <host> -d $PN $PN $PVR" 534 einfo " webapp-config -I -h <host> -d ${PN} ${PN} ${PVR}"
513 einfo 535 einfo
514 einfo "For more details, see the webapp-config(8) man page" 536 einfo "For more details, see the webapp-config(8) man page"
515 fi 537 fi
516 538
517 return 0 539 return 0
522 # remove any virtual installs that there are 544 # remove any virtual installs that there are
523 545
524 local my_output 546 local my_output
525 local x 547 local x
526 548
527 my_output="`webapp-config --list-installs $PN $PVR`" 549 my_output="$(${WEBAPP_CONFIG} --list-installs ${PN} ${PVR})"
528 550
529 if [ "$?" != "0" ]; then 551 if [ "${?}" != "0" ]; then
530 return 552 return
531 fi 553 fi
532 554
533 # the changes to IFS here are necessary to ensure that we can cope
534 # with directories that contain spaces in the file names
535
536 # OLD_IFS="$IFS"
537 # IFS=" "
538
539 for x in $my_output ; do 555 for x in ${my_output} ; do
540 # IFS="$OLD_IFS"
541
542 [ -f $x/.webapp ] && . $x/.webapp || ewarn "Cannot find file $x/.webapp" 556 [ -f ${x}/.webapp ] && . ${x}/.webapp || ewarn "Cannot find file ${x}/.webapp"
543 557
544 if [ -z "WEB_HOSTNAME" -o -z "WEB_INSTALLDIR" ]; then 558 if [ -z "${WEB_HOSTNAME}" -o -z "${WEB_INSTALLDIR}" ]; then
545 ewarn "Don't forget to use webapp-config to remove the copy of" 559 ewarn "Don't forget to use webapp-config to remove the copy of"
546 ewarn "${PN}-${PVR} installed in" 560 ewarn "${PN}-${PVR} installed in"
547 ewarn 561 ewarn
548 ewarn " $x" 562 ewarn " ${x}"
549 ewarn 563 ewarn
550 else 564 else
551 # we have enough information to remove the virtual copy ourself 565 # we have enough information to remove the virtual copy ourself
552 566
553 webapp-config -C -h ${WEB_HOSTNAME} -d ${WEB_INSTALLDIR} 567 ${WEBAPP_CONFIG} -C -h ${WEB_HOSTNAME} -d ${WEB_INSTALLDIR}
554 568
555 # if the removal fails - we carry on anyway! 569 # if the removal fails - we carry on anyway!
556 fi 570 fi
557 # IFS=" "
558 done 571 done
559
560 # IFS="$OLD_IFS"
561} 572}

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.41

  ViewVC Help
Powered by ViewVC 1.1.20