向uliweb添加config输出功能及support的优化

今天向uliweb添加了一个新命令 config ,可以用它来生成一些部署相关的配置信息,目前支持nginx和supervisor。不同的配置同时还可以允许输入一些参数,这样生成的配置信息就比较接近实际情况了。输出结果将直接显示在console中,所以你可能要把它拷贝下来然后粘贴到真正的配置文件中去。配置文件目前还比较简单,后面会更完善一下。如下图演示了supervisor配置信息的生成:

在此输入图片描述

其中python_path如果是在virtualenv环境下将用来设置python的解释路径,在配置文件中将生成 --home /python/path 参数。

同时,config和support都开始支持用户自定义的配置。

对于config来说,稍微复杂一点:

在你的某个app中创建 template_files/config 目录,然后创建一个名为 xxxxx.conf 的文件,其中xxxxx将是config所支持的类型。xxxxx.conf就是将要输出的配置文件。在这个配置文件中可以定义一些模板变量,其中象 project, project_dir 已经有缺省值,它们就是当前路径的名字和路径。除了这两个缺省的,你还可以使用其它的变量。但是就需要从命令行进行输入。所以为了输入,你还需要在同一目录下定义 xxxxx.ini 文件,这个将用来配置输入变量和缺省变量。它的格式为:

[INPUT]
port = 'prompt message', 'default value'
[DEFAULT]
project = 'test'

其中 INPUT 表示要在命令行输入的变量。key是变量名,对应模板中的变量名。值可以为空,即不定义,也可以是一个tuple,第一个值是提示信息,也可为空,第二个是缺省值。

而DEFAULT表示缺省值,它将不会在命令行输入。你可以在这里覆盖project和project_dir的值。

对于support支持则简单一些。只要在app下创建 template_files/support 的结构,每种支持的类型就是在这个目录下的一个子目录,子目录的名字就是支持的类型。在运行时,它只是简单地将对应的目录下的文件和目录都拷贝到当前的项目目录下,目前也没有什么变量的替換之类的处理。

通过优化了对app扩展配置的支持,你就可以针对自已的项目或可复用的app创建符合自已需要的支持文件和配置信息,方便以后复用。

你可能感兴趣的:(向uliweb添加config输出功能及support的优化)