轻量级python构建工具。
microbuild的Python项目详细描述
Calum J.Eadie(www.calum j eadie.com)
功能
- 学得真快。
- 管理任务之间的依赖关系。
- 自动生成命令行界面。
安装
可以从python包索引(pypi)或源代码安装microbuild。
使用pip:
$ pip install microbuild
使用简易安装:
$ easy_install microbuild
示例
构建脚本是用纯python编写的,microbuild负责管理 任务和生成命令行接口之间的任何依赖关系。
任务只是用@task()decorator标记的常规python函数。依赖 也用@task()指定。可以使用@ignoredecorator忽略任务。
在定义所有任务后build(sys.modules[__name__],sys.argv[1:])被调用 运行生成。
# example.py import sys from microbuild.microbuild import task,ignore,build @task() def clean(): """Clean build directory.""" print "Cleaning build directory..." @task(clean) def html(): """Generate HTML.""" print "Generating HTML..." @ignore @task(clean) def images(): """Prepare images.""" print "Preparing images..." @task(html,images) def android(): """Package Android app.""" print "Packaging android app..." if __name__ == "__main__": build(sys.modules[__name__],sys.argv[1:])
命令行界面和帮助将自动生成。任务描述 从函数docstrings中提取。
$ ./example.py -h usage: example.py [-h] task positional arguments: task perform specified task and all it's dependancies optional arguments: -h, --help show this help message and exit tasks: android Package Android app. clean Clean build directory. html Generate HTML. images Prepare images.
任务之间的依赖性也得到了考虑。
$ ./example.py android [ example.py - Starting task "clean" ] Cleaning build directory... [ example.py - Completed task "clean" ] [ example.py - Starting task "html" ] Generating HTML... [ example.py - Completed task "html" ] [ example.py - Ignoring task "images" ] [ example.py - Starting task "android" ] Packaging android app... [ example.py - Completed task "android" ]
贡献
microbuild位于https://github.com/CalumJEadie/microbuild,贡献如下 非常欢迎。
运行build.py apidoc生成文档,运行build.py test所有单元 测验。
许可证
microbuild是根据麻省理工学院的许可证授权的。见LICENSE.txt。
更改
0.3.3-2013年3月26日
- 改进了自述文件。
0.3.1,0.3.2-2012年12月15日
- 改进了自述文件。
0.3.0-2012年9月18日
- 修正了日志中的错误。不再修改根日志。
- 添加了忽略功能。
- 扩展API文档。
0.2.0-2012年8月29日
- 添加了进度跟踪输出。
- 添加了对任务中异常的处理。
0.1.0-28/08/2012
- 初次发布。
- 增加了对任务之间依赖关系的管理。
- 增加了命令行界面的自动生成。