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

Contents of /eclass/webapp.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.60 - (hide annotations) (download)
Tue Mar 4 18:41:43 2008 UTC (6 years, 8 months ago) by hollow
Branch: MAIN
Changes since 1.59: +10 -4 lines
make optional use webapp.eclass possible

1 rl03 1.39 # Copyright 1999-2006 Gentoo Foundation
2 stuart 1.1 # Distributed under the terms of the GNU General Public License v2
3 hollow 1.60 # $Header: /var/cvsroot/gentoo-x86/eclass/webapp.eclass,v 1.59 2008/02/23 23:54:40 hollow Exp $
4 stuart 1.1 #
5 hollow 1.49 # @ECLASS: webapp.eclass
6     # @MAINTAINER:
7     # web-apps@gentoo.org
8     # @BLURB: functions for installing applications to run under a web server
9     # @DESCRIPTION:
10     # The webapp eclass contains functions to handle web applications with
11     # webapp-config. Part of the implementation of GLEP #11
12 stuart 1.1
13 hollow 1.59 # @ECLASS-VARIABLE: WEBAPP_NO_AUTO_INSTALL
14     # @DESCRIPTION:
15     # An ebuild sets this to `yes' if an automatic installation and/or upgrade is
16     # not possible. The ebuild should overwrite pkg_postinst() and explain the
17     # reason for this BEFORE calling webapp_pkg_postinst().
18     [[ "${WEBAPP_NO_AUTO_INSTALL}" == "yes" ]] || IUSE="vhosts"
19    
20 hollow 1.60 # @ECLASS-VARIABLE: WEBAPP_OPTIONAL
21     # @DESCRIPTION:
22     # An ebuild sets this to `yes' to make webapp support optional, in which case
23     # you also need to take care of USE-flags and dependencies.
24     if [[ "${WEBAPP_OPTIONAL}" != "yes" ]]; then
25     SLOT="${PVR}"
26     DEPEND=">=app-admin/webapp-config-1.50.15"
27     RDEPEND="${DEPEND}"
28     fi
29 stuart 1.1
30 stuart 1.18 EXPORT_FUNCTIONS pkg_postinst pkg_setup src_install pkg_prerm
31 stuart 1.1
32 stuart 1.37 INSTALL_DIR="/${PN}"
33 stuart 1.14 IS_UPGRADE=0
34     IS_REPLACE=0
35    
36 stuart 1.19 INSTALL_CHECK_FILE="installed_by_webapp_eclass"
37 hollow 1.57 SETUP_CHECK_FILE="setup_by_webapp_eclass"
38 stuart 1.19
39 hollow 1.51 ETC_CONFIG="${ROOT}etc/vhosts/webapp-config"
40     WEBAPP_CONFIG="${ROOT}usr/sbin/webapp-config"
41     WEBAPP_CLEANER="${ROOT}usr/sbin/webapp-cleaner"
42 stuart 1.37
43 hollow 1.49 # ==============================================================================
44     # INTERNAL FUNCTIONS
45     # ==============================================================================
46    
47 stuart 1.37 # Load the config file /etc/vhosts/webapp-config
48     # Supports both the old bash version, and the new python version
49 hollow 1.49 webapp_read_config() {
50 hollow 1.51 debug-print-function $FUNCNAME $*
51    
52 stuart 1.37 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     }
59 stuart 1.21
60 hollow 1.49 # Check whether a specified file exists in the given directory (`.' by default)
61     webapp_checkfileexists() {
62 hollow 1.51 debug-print-function $FUNCNAME $*
63    
64 hollow 1.52 local my_prefix=${2:+${2}/}
65 stuart 1.9
66 hollow 1.53 if [[ ! -e "${my_prefix}${1}" ]]; then
67 stuart 1.37 msg="ebuild fault: file '${1}' not found"
68 stuart 1.1 eerror "$msg"
69     eerror "Please report this as a bug at http://bugs.gentoo.org/"
70     die "$msg"
71     fi
72     }
73    
74 hollow 1.49 webapp_check_installedat() {
75 hollow 1.51 debug-print-function $FUNCNAME $*
76 stuart 1.37 ${WEBAPP_CONFIG} --show-installed -h localhost -d "${INSTALL_DIR}" 2> /dev/null
77 stuart 1.3 }
78    
79 hollow 1.49 webapp_strip_appdir() {
80 hollow 1.51 debug-print-function $FUNCNAME $*
81 hollow 1.52 echo "${1#${MY_APPDIR}/}"
82 stuart 1.3 }
83    
84 hollow 1.49 webapp_strip_d() {
85 hollow 1.51 debug-print-function $FUNCNAME $*
86 hollow 1.52 echo "${1#${D}}"
87 stuart 1.3 }
88    
89 hollow 1.49 webapp_strip_cwd() {
90 hollow 1.51 debug-print-function $FUNCNAME $*
91 hollow 1.52 echo "${1/#.\///}"
92 stuart 1.1 }
93    
94 hollow 1.50 webapp_getinstalltype() {
95 hollow 1.51 debug-print-function $FUNCNAME $*
96 hollow 1.59
97     if ! has vhosts ${IUSE} || use vhosts; then
98     return
99     fi
100 hollow 1.50
101 hollow 1.54 local my_output
102     my_output="$(webapp_check_installedat)"
103    
104     if [[ $? -eq 0 ]]; then
105     # something is already installed there
106     # make sure it isn't the same version
107    
108     local my_pn="$(echo ${my_output} | awk '{ print $1 }')"
109     local my_pvr="$(echo ${my_output} | awk '{ print $2 }')"
110 hollow 1.50
111 hollow 1.54 REMOVE_PKG="${my_pn}-${my_pvr}"
112 hollow 1.50
113 hollow 1.54 if [[ "${my_pn}" == "${PN}" ]]; then
114     if [[ "${my_pvr}" != "${PVR}" ]]; then
115     elog "This is an upgrade"
116     IS_UPGRADE=1
117 hollow 1.50 else
118 hollow 1.54 elog "This is a re-installation"
119     IS_REPLACE=1
120 hollow 1.50 fi
121     else
122 hollow 1.54 elog "${my_output} is installed there"
123 hollow 1.50 fi
124 hollow 1.54 else
125     elog "This is an installation"
126 hollow 1.50 fi
127     }
128    
129 hollow 1.49 # ==============================================================================
130     # PUBLIC FUNCTIONS
131     # ==============================================================================
132    
133 hollow 1.58 # @FUNCTION: need_httpd
134     # @DESCRIPTION:
135     # Call this function AFTER your ebuild's DEPEND line if any of the available
136     # webservers are able to run this application.
137     need_httpd() {
138     DEPEND="${DEPEND}
139     || ( virtual/httpd-basic virtual/httpd-cgi virtual/httpd-fastcgi )"
140     }
141    
142     # @FUNCTION: need_httpd_cgi
143     # @DESCRIPTION:
144     # Call this function AFTER your ebuild's DEPEND line if any of the available
145     # CGI-capable webservers are able to run this application.
146     need_httpd_cgi() {
147     DEPEND="${DEPEND}
148     || ( virtual/httpd-cgi virtual/httpd-fastcgi )"
149     }
150    
151     # @FUNCTION: need_httpd_fastcgi
152     # @DESCRIPTION:
153     # Call this function AFTER your ebuild's DEPEND line if any of the available
154     # FastCGI-capabale webservers are able to run this application.
155     need_httpd_fastcgi() {
156     DEPEND="${DEPEND}
157     virtual/httpd-fastcgi"
158     }
159    
160 hollow 1.49 # @FUNCTION: webapp_configfile
161     # @USAGE: <file> [more files ...]
162     # @DESCRIPTION:
163     # Mark a file config-protected for a web-based application.
164     webapp_configfile() {
165 hollow 1.51 debug-print-function $FUNCNAME $*
166    
167 hollow 1.54 local m
168 hollow 1.53 for m in "$@"; do
169 rl03 1.39 webapp_checkfileexists "${m}" "${D}"
170 stuart 1.27
171 hollow 1.54 local my_file="$(webapp_strip_appdir "${m}")"
172     my_file="$(webapp_strip_cwd "${my_file}")"
173 stuart 1.3
174 hollow 1.54 elog "(config) ${my_file}"
175     echo "${my_file}" >> ${D}/${WA_CONFIGLIST}
176 rl03 1.39 done
177 stuart 1.1 }
178    
179 hollow 1.49 # @FUNCTION: webapp_hook_script
180     # @USAGE: <file>
181     # @DESCRIPTION:
182 stuart 1.18 # Install a script that will run after a virtual copy is created, and
183 hollow 1.49 # before a virtual copy has been removed.
184     webapp_hook_script() {
185 hollow 1.51 debug-print-function $FUNCNAME $*
186    
187 stuart 1.37 webapp_checkfileexists "${1}"
188 stuart 1.18
189 rl03 1.43 elog "(hook) ${1}"
190 wrobel 1.40 cp "${1}" "${D}/${MY_HOOKSCRIPTSDIR}/$(basename "${1}")" || die "Unable to install ${1} into ${D}/${MY_HOOKSCRIPTSDIR}/"
191     chmod 555 "${D}/${MY_HOOKSCRIPTSDIR}/$(basename "${1}")"
192 stuart 1.18 }
193    
194 hollow 1.49 # @FUNCTION: webapp_postinst_txt
195     # @USAGE: <lang> <file>
196     # @DESCRIPTION:
197 stuart 1.5 # Install a text file containing post-installation instructions.
198 hollow 1.49 webapp_postinst_txt() {
199 hollow 1.51 debug-print-function $FUNCNAME $*
200    
201 stuart 1.37 webapp_checkfileexists "${2}"
202 stuart 1.5
203 rl03 1.43 elog "(info) ${2} (lang: ${1})"
204 stuart 1.37 cp "${2}" "${D}/${MY_APPDIR}/postinst-${1}.txt"
205 stuart 1.5 }
206    
207 hollow 1.49 # @FUNCTION: webapp_postupgrade_txt
208     # @USAGE: <lang> <file>
209     # @DESCRIPTION:
210 stuart 1.31 # Install a text file containing post-upgrade instructions.
211 hollow 1.49 webapp_postupgrade_txt() {
212 hollow 1.51 debug-print-function $FUNCNAME $*
213    
214 stuart 1.37 webapp_checkfileexists "${2}"
215 stuart 1.31
216 rl03 1.43 elog "(info) ${2} (lang: ${1})"
217 stuart 1.37 cp "${2}" "${D}/${MY_APPDIR}/postupgrade-${1}.txt"
218 stuart 1.3 }
219    
220 hollow 1.55 # helper for webapp_serverowned()
221     _webapp_serverowned() {
222     debug-print-function $FUNCNAME $*
223    
224     webapp_checkfileexists "${1}" "${D}"
225     local my_file="$(webapp_strip_appdir "${1}")"
226     my_file="$(webapp_strip_cwd "${my_file}")"
227    
228     elog "(server owned) ${my_file}"
229     echo "${my_file}" >> "${D}/${WA_SOLIST}"
230     }
231    
232 hollow 1.49 # @FUNCTION: webapp_serverowned
233     # @USAGE: [-R] <file> [more files ...]
234     # @DESCRIPTION:
235     # Identify a file which must be owned by the webserver's user:group settings.
236     # The ownership of the file is NOT set until the application is installed using
237     # the webapp-config tool. If -R is given directories are handled recursively.
238     webapp_serverowned() {
239 hollow 1.51 debug-print-function $FUNCNAME $*
240    
241 hollow 1.54 local a m
242 hollow 1.53 if [[ "${1}" == "-R" ]]; then
243 rl03 1.39 shift
244 hollow 1.53 for m in "$@"; do
245 hollow 1.55 find "${D}${m}" | while read a; do
246     a=$(webapp_strip_d "${a}")
247     _webapp_serverowned "${a}"
248 rl03 1.39 done
249     done
250     else
251 hollow 1.53 for m in "$@"; do
252 hollow 1.55 _webapp_serverowned "${m}"
253 rl03 1.39 done
254     fi
255 stuart 1.3 }
256    
257 hollow 1.49 # @FUNCTION: webapp_server_configfile
258     # @USAGE: <server> <file> [new name]
259     # @DESCRIPTION:
260     # Install a configuration file for the webserver. You need to specify a
261     # webapp-config supported <server>. if no new name is given `basename $2' is
262     # used by default. Note: this function will automagically prepend $1 to the
263     # front of your config file's name.
264     webapp_server_configfile() {
265 hollow 1.51 debug-print-function $FUNCNAME $*
266    
267 stuart 1.37 webapp_checkfileexists "${2}"
268 stuart 1.18
269 hollow 1.51 # WARNING:
270     #
271     # do NOT change the naming convention used here without changing all
272     # the other scripts that also rely upon these names
273 stuart 1.18
274 hollow 1.52 local my_file="${1}-${3:-$(basename "${2}")}"
275 stuart 1.18
276 rl03 1.43 elog "(${1}) config file '${my_file}'"
277 stuart 1.37 cp "${2}" "${D}/${MY_SERVERCONFIGDIR}/${my_file}"
278 stuart 1.18 }
279    
280 hollow 1.49 # @FUNCTION: webapp_sqlscript
281     # @USAGE: <db> <file> [version]
282     # @DESCRIPTION:
283     # Install a SQL script that creates/upgrades a database schema for the web
284     # application. Currently supported database engines are mysql and postgres.
285     # If a version is given the script should upgrade the database schema from
286     # the given version to $PVR.
287     webapp_sqlscript() {
288 hollow 1.51 debug-print-function $FUNCNAME $*
289    
290 stuart 1.37 webapp_checkfileexists "${2}"
291 stuart 1.3
292 hollow 1.54 dodir "${MY_SQLSCRIPTSDIR}/${1}"
293 stuart 1.3
294 hollow 1.51 # WARNING:
295 stuart 1.3 #
296     # do NOT change the naming convention used here without changing all
297     # the other scripts that also rely upon these names
298 swegener 1.38
299 hollow 1.53 if [[ -n "${3}" ]]; then
300     elog "(${1}) upgrade script for ${PN}-${3} to ${PVR}"
301 stuart 1.37 cp "${2}" "${D}${MY_SQLSCRIPTSDIR}/${1}/${3}_to_${PVR}.sql"
302     chmod 600 "${D}${MY_SQLSCRIPTSDIR}/${1}/${3}_to_${PVR}.sql"
303 stuart 1.3 else
304 rl03 1.43 elog "(${1}) create script for ${PN}-${PVR}"
305 stuart 1.37 cp "${2}" "${D}/${MY_SQLSCRIPTSDIR}/${1}/${PVR}_create.sql"
306     chmod 600 "${D}/${MY_SQLSCRIPTSDIR}/${1}/${PVR}_create.sql"
307 stuart 1.3 fi
308 stuart 1.1 }
309    
310 hollow 1.50 # @FUNCTION: webapp_src_preinst
311     # @DESCRIPTION:
312     # You need to call this function in src_install() BEFORE anything else has run.
313     # For now we just create required webapp-config directories.
314     webapp_src_preinst() {
315 hollow 1.51 debug-print-function $FUNCNAME $*
316    
317 hollow 1.50 dodir "${MY_HTDOCSDIR}"
318     dodir "${MY_HOSTROOTDIR}"
319     dodir "${MY_CGIBINDIR}"
320     dodir "${MY_ICONSDIR}"
321     dodir "${MY_ERRORSDIR}"
322     dodir "${MY_SQLSCRIPTSDIR}"
323     dodir "${MY_HOOKSCRIPTSDIR}"
324     dodir "${MY_SERVERCONFIGDIR}"
325     }
326    
327 hollow 1.49 # ==============================================================================
328     # EXPORTED FUNCTIONS
329     # ==============================================================================
330    
331     # @FUNCTION: webapp_pkg_setup
332     # @DESCRIPTION:
333 hollow 1.50 # The default pkg_setup() for this eclass. This will gather required variables
334     # from webapp-config and check if there is an application installed to
335     # `${ROOT}/var/www/localhost/htdocs/${PN}/' if USE=vhosts is not set.
336     #
337     # You need to call this function BEFORE anything else has run in your custom
338     # pkg_setup().
339 hollow 1.49 webapp_pkg_setup() {
340 hollow 1.51 debug-print-function $FUNCNAME $*
341 stuart 1.15
342 hollow 1.57 # to test whether or not the ebuild has correctly called this function
343     # we add an empty file to the filesystem
344     #
345     # we used to just set a variable in the shell script, but we can
346     # no longer rely on Portage calling both webapp_pkg_setup() and
347     # webapp_src_install() within the same shell process
348     touch "${T}/${SETUP_CHECK_FILE}"
349    
350 rl03 1.44 # special case - some ebuilds *do* need to overwride the SLOT
351     if [[ "${SLOT}+" != "${PVR}+" && "${WEBAPP_MANUAL_SLOT}" != "yes" ]]; then
352     die "Set WEBAPP_MANUAL_SLOT=\"yes\" if you need to SLOT manually"
353 stuart 1.15 fi
354    
355 stuart 1.8 # pull in the shared configuration file
356 stuart 1.18 G_HOSTNAME="localhost"
357 stuart 1.37 webapp_read_config
358 stuart 1.18
359 hollow 1.54 local my_dir="${ROOT}${VHOST_ROOT}/${MY_HTDOCSBASE}/${PN}"
360    
361     # if USE=vhosts is enabled OR no application is installed we're done here
362 hollow 1.59 if ! has vhosts ${IUSE} || use vhosts || [[ ! -d "${my_dir}" ]]; then
363     return
364     fi
365 stuart 1.18
366 hollow 1.54 local my_output
367     my_output="$(webapp_check_installedat)"
368 stuart 1.18
369 hollow 1.54 if [[ $? -ne 0 ]]; then
370     # okay, whatever is there, it isn't webapp-config-compatible
371 hollow 1.55 echo
372     ewarn
373 hollow 1.54 ewarn "You already have something installed in ${my_dir}"
374     ewarn
375     ewarn "Whatever is in ${my_dir}, it's not"
376     ewarn "compatible with webapp-config."
377     ewarn
378     ewarn "This ebuild may be overwriting important files."
379     ewarn
380 hollow 1.55 echo
381     ebeep 10
382 hollow 1.54 elif [[ "$(echo ${my_output} | awk '{ print $1 }')" != "${PN}" ]]; then
383 hollow 1.55 echo
384     eerror "You already have ${my_output} installed in ${my_dir}"
385     eerror
386     eerror "I cannot upgrade a different application"
387     eerror
388     echo
389 hollow 1.54 die "Cannot upgrade contents of ${my_dir}"
390 stuart 1.18 fi
391 hollow 1.57
392     }
393    
394     # @FUNCTION: webapp_src_install
395     # @DESCRIPTION:
396     # This is the default src_install(). For now, we just make sure that root owns
397     # everything, and that there are no setuid files.
398     #
399     # You need to call this function AFTER everything else has run in your custom
400     # src_install().
401     webapp_src_install() {
402     debug-print-function $FUNCNAME $*
403    
404     # to test whether or not the ebuild has correctly called this function
405     # we add an empty file to the filesystem
406     #
407     # we used to just set a variable in the shell script, but we can
408     # no longer rely on Portage calling both webapp_src_install() and
409     # webapp_pkg_postinst() within the same shell process
410     touch "${D}/${MY_APPDIR}/${INSTALL_CHECK_FILE}"
411    
412     # sanity checks, to catch bugs in the ebuild
413     if [[ ! -f "${T}/${SETUP_CHECK_FILE}" ]]; then
414     eerror
415     eerror "This ebuild did not call webapp_pkg_setup() at the beginning"
416     eerror "of the pkg_setup() function"
417     eerror
418     eerror "Please log a bug on http://bugs.gentoo.org"
419     eerror
420     eerror "You should use emerge -C to remove this package, as the"
421     eerror "installation is incomplete"
422     eerror
423     die "Ebuild did not call webapp_pkg_setup() - report to http://bugs.gentoo.org"
424     fi
425    
426     chown -R "${VHOST_DEFAULT_UID}:${VHOST_DEFAULT_GID}" "${D}/"
427     chmod -R u-s "${D}/"
428     chmod -R g-s "${D}/"
429    
430     keepdir "${MY_PERSISTDIR}"
431     fowners "root:0" "${MY_PERSISTDIR}"
432     fperms 755 "${MY_PERSISTDIR}"
433 stuart 1.14 }
434 stuart 1.6
435 hollow 1.50 # @FUNCTION: webapp_pkg_postinst
436     # @DESCRIPTION:
437     # The default pkg_postinst() for this eclass. This installs the web application to
438     # `${ROOT}/var/www/localhost/htdocs/${PN}/' if USE=vhosts is not set. Otherwise
439     # display a short notice how to install this application with webapp-config.
440     #
441     # You need to call this function AFTER everything else has run in your custom
442     # pkg_postinst().
443 hollow 1.49 webapp_pkg_postinst() {
444 hollow 1.51 debug-print-function $FUNCNAME $*
445    
446 stuart 1.37 webapp_read_config
447 stuart 1.21
448 stuart 1.15 # sanity checks, to catch bugs in the ebuild
449 hollow 1.53 if [[ ! -f "${ROOT}${MY_APPDIR}/${INSTALL_CHECK_FILE}" ]]; then
450 stuart 1.15 eerror
451     eerror "This ebuild did not call webapp_src_install() at the end"
452     eerror "of the src_install() function"
453     eerror
454     eerror "Please log a bug on http://bugs.gentoo.org"
455     eerror
456     eerror "You should use emerge -C to remove this package, as the"
457     eerror "installation is incomplete"
458     eerror
459     die "Ebuild did not call webapp_src_install() - report to http://bugs.gentoo.org"
460     fi
461    
462 hollow 1.59 if has vhosts ${IUSE}; then
463     if ! use vhosts; then
464     echo
465     elog "vhosts USE flag not set - auto-installing using webapp-config"
466    
467     G_HOSTNAME="localhost"
468     webapp_read_config
469    
470     local my_mode=-I
471     webapp_getinstalltype
472    
473     if [[ "${IS_REPLACE}" == "1" ]]; then
474     elog "${PN}-${PVR} is already installed - replacing"
475     my_mode=-I
476     elif [[ "${IS_UPGRADE}" == "1" ]]; then
477     elog "${REMOVE_PKG} is already installed - upgrading"
478     my_mode=-U
479     else
480     elog "${PN}-${PVR} is not installed - using install mode"
481     fi
482 stuart 1.10
483 hollow 1.59 my_cmd="${WEBAPP_CONFIG} ${my_mode} -h localhost -u root -d ${INSTALL_DIR} ${PN} ${PVR}"
484     elog "Running ${my_cmd}"
485     ${my_cmd}
486    
487     echo
488     local cleaner="${WEBAPP_CLEANER} -p -C ${PN}"
489     einfo "Running ${cleaner}"
490     ${cleaner}
491 stuart 1.11 else
492 hollow 1.59 elog
493     elog "The 'vhosts' USE flag is switched ON"
494     elog "This means that Portage will not automatically run webapp-config to"
495     elog "complete the installation."
496     elog
497     elog "To install ${PN}-${PVR} into a virtual host, run the following command:"
498     elog
499     elog " webapp-config -I -h <host> -d ${PN} ${PN} ${PVR}"
500     elog
501     elog "For more details, see the webapp-config(8) man page"
502 stuart 1.10 fi
503 stuart 1.18 else
504 rl03 1.43 elog
505 hollow 1.59 elog "This ebuild does not support the 'vhosts' USE flag."
506 rl03 1.43 elog "This means that Portage will not automatically run webapp-config to"
507     elog "complete the installation."
508     elog
509     elog "To install ${PN}-${PVR} into a virtual host, run the following command:"
510     elog
511     elog " webapp-config -I -h <host> -d ${PN} ${PN} ${PVR}"
512     elog
513     elog "For more details, see the webapp-config(8) man page"
514 stuart 1.10 fi
515 stuart 1.2 }
516 stuart 1.18
517 hollow 1.50 # @FUNCTION: webapp_pkg_prerm
518     # @DESCRIPTION:
519     # This is the default pkg_prerm() for this eclass. If USE=vhosts is not set
520     # remove all installed copies of this web application. Otherwise instruct the
521 hollow 1.51 # user to manually remove those copies. See bug #136959.
522 hollow 1.49 webapp_pkg_prerm() {
523 hollow 1.51 debug-print-function $FUNCNAME $*
524 stuart 1.18
525 hollow 1.53 local my_output=
526 stuart 1.37 my_output="$(${WEBAPP_CONFIG} --list-installs ${PN} ${PVR})"
527 hollow 1.53 [[ $? -ne 0 ]] && return
528 stuart 1.18
529 hollow 1.53 local x
530 hollow 1.59 if has vhosts ${IUSE} && ! use vhosts; then
531 hollow 1.56 echo "${my_output}" | while read x; do
532     if [[ -f "${x}"/.webapp ]]; then
533     . "${x}"/.webapp
534     if [[ -n "${WEB_HOSTNAME}" && -n "${WEB_INSTALLDIR}" ]]; then
535     ${WEBAPP_CONFIG} -C -h ${WEB_HOSTNAME} -d ${WEB_INSTALLDIR}
536     fi
537     else
538     ewarn "Cannot find file ${x}/.webapp"
539 rl03 1.48 fi
540     done
541 hollow 1.56 elif [[ "${my_output}" != "" ]]; then
542     echo
543     ewarn
544 rl03 1.48 ewarn "Don't forget to use webapp-config to remove any copies of"
545     ewarn "${PN}-${PVR} installed in"
546     ewarn
547 stuart 1.18
548 hollow 1.56 echo "${my_output}" | while read x; do
549     if [[ -f "${x}"/.webapp ]]; then
550     ewarn " ${x}"
551     else
552     ewarn "Cannot find file ${x}/.webapp"
553     fi
554 rl03 1.48 done
555 hollow 1.56
556     ewarn
557     echo
558 rl03 1.48 fi
559 stuart 1.18 }

  ViewVC Help
Powered by ViewVC 1.1.20