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

Contents of /eclass/webapp.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.59 - (hide annotations) (download)
Sat Feb 23 23:54:40 2008 UTC (6 years, 7 months ago) by hollow
Branch: MAIN
Changes since 1.58: +55 -31 lines
make IUSE=vhosts optional

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

  ViewVC Help
Powered by ViewVC 1.1.20