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

Contents of /eclass/webapp.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.61 - (hide annotations) (download)
Tue Mar 4 18:44:01 2008 UTC (6 years, 5 months ago) by hollow
Branch: MAIN
Changes since 1.60: +3 -2 lines
make IUSE optional as well

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

  ViewVC Help
Powered by ViewVC 1.1.20