7.2. 应用部署的定制

当在部署目录中创建INI文件后,还要执行setup-app命令,以完成应用的部署。

~/deploy$ paster setup-app config.ini
Running setup_config() from pysvnmanager.websetup
~/deploy$ ls -F
config/  config.ini
~/deploy$ find config -type f
config/localconfig.py
config/svn.access
config/svn.passwd

执行setup-app命令创建的config目录以及文件是从何而来? 实际上setup-app命令会执行pySvnManager中的websetup.py文件相应的方法。 我们对websetup.py的setup_config方法进行设置, 用以初始化应用(拷贝三个配置文件到config目录)。示例如下:

def setup_config(command, filename, section, vars):
    """Place any commands to setup pysvnmanager here"""
    conf = appconfig('config:' + filename)
    load_environment(conf.global_conf, conf.local_conf)

    here = config['here']

    if not os.path.exists(here+'/config'):
        os.mkdir(here+'/config')
    for f in ['svn.access', 'svn.passwd', 'localconfig.py']:
        src  = resource_filename('pysvnmanager', 'config/' + f+'.in')
        dest = here+'/config/' + f
        if os.path.exists(dest):
            log.warning("Warning: %s already exist, ignored." % f)
        else:
            copyfile(src, dest)