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 |