import os.path
from fabric.api import env, local, run, execute
env.base_dir = "/Users/javajigi/python-workspace/fabric/projects"
environments = {
"dev": {
"source_dir": "%(base_dir)s/source" % {"base_dir":env.base_dir},
"release_suffix_dir": "releases",
"tomcat_base_suffix_dir": "tomcat_base",
},
}
projects = {
"slipp-web": {
"hosts": ["localhost"],
"web_port": 8080
}
}
def init(environment='dev', name='slipp-web'):
print "Setting environment", environment
env.update(environments[environment])
env.update(projects[name])
env.environment = environment
env.project_name = name
execute(create_project_dir)
def create_project_dir():
env.project_base = '%s/%s' % (env.base_dir, env.project_name)
print "project base", env.project_base
if not os.path.exists(env.project_base):
print "does not exists", env.project_base
local("cp -R %s %s" % (env.source_dir, env.project_base))
def configure():
origin_serverxml = '%s/%s/conf/server.xml' % (env.source_dir, env.tomcat_base_suffix_dir)
target_serverxml = '%s/%s/conf/server.xml' % (env.project_base, env.tomcat_base_suffix_dir)
with open(target_serverxml, "w") as fout:
with open(origin_serverxml, "r") as fin:
for line in fin:
fout.write(line.replace('${PORT}', '%s' % (env.web_port)))
fin.close
fout.close