cloudstack/tools/waf/tomcat.py
2010-09-09 13:27:20 -07:00

41 lines
2.0 KiB
Python

#!/usr/bin/env python
import Options, Utils
import os
def detect(conf):
if not conf.env.DATADIR:
conf.fatal("DATADIR not found in the environment. Did you run conf.check_tool('gnu_dirs') before running check_tool('tomcat')?")
conf.check_message_1('Detecting Tomcat')
conf.env.TOMCATHOME = ''
tomcathome = getattr(Options.options, 'TOMCATHOME', '')
if tomcathome:
conf.env.TOMCATHOME = tomcathome
method = "forced through --with-tomcat"
else:
if "TOMCAT_HOME" in conf.environ and conf.environ['TOMCAT_HOME'].strip():
conf.env.TOMCATHOME = conf.environ["TOMCAT_HOME"]
method = 'got through environment variable %TOMCAT_HOME%'
elif "CATALINA_HOME" in conf.environ and conf.environ['CATALINA_HOME'].strip():
conf.env.TOMCATHOME = conf.environ['CATALINA_HOME']
method = 'got through environment variable %CATALINA_HOME%'
elif os.path.isdir(os.path.join(conf.env.DATADIR,"tomcat6")):
conf.env.TOMCATHOME = os.path.join(conf.env.DATADIR,"tomcat6")
method = 'detected existence of Tomcat directory under $DATADIR'
elif os.path.isdir("/usr/share/tomcat6"):
conf.env.TOMCATHOME = "/usr/share/tomcat6"
method = 'detected existence of standard Linux system directory'
if not conf.env.TOMCATHOME:
conf.fatal("Could not detect Tomcat")
elif not os.path.isdir(conf.env.TOMCATHOME):
conf.fatal("Tomcat cannot be found at %s"%conf.env.TOMCATHOME)
else:
conf.check_message_2("%s (%s)"%(conf.env.TOMCATHOME,method),"GREEN")
def set_options(opt):
inst_dir = opt.get_option_group('--datadir') # get the group that contains bindir
if not inst_dir: raise Utils.WafError, "DATADIR not set. Did you load the gnu_dirs tool options with opt.tool_options('gnu_dirs') before running opt.tool_options('tomcat')?"
inst_dir.add_option('--with-tomcat', # add javadir to the group that contains bindir
help = 'Path to installed Tomcat 6 environment [Default: ${DATADIR}/tomcat6 (unless %%CATALINA_HOME%% is set)]',
default = '',
dest = 'TOMCATHOME')