任何“适当”的方式来使用Python为构建脚本自动化?
我希望有我的剧本做这样的事情:
cd /somewhere git pull npm run build make deploy
无处不在谷歌我看到:os.system("xxx")
或subprocess.call(...)
。
在BASH,上面是简单的,但我想创造一个CLI Python应用程序创建所有这些东西对我来说。
在没有推倒重来的精神,有很多的方式来自动构建与蟒蛇,越来越像依赖关系管理免费的东西。
一个有用的工具是doit。
为了得到一个想法,这类似于你的使用情况很简单的例子:
import os
MY_PRJ_ROOT='/home/myname/my_project_dir'
def task_cd():
def cd_to_somewhere():
os.chdir(MY_PRJ_ROOT)
return {
'actions': [cd_to_somewhere]
}
def task_git_pull():
"""pull my git repo"""
return {
'actions': ['git pull'],
}
def task_build_rust_app():
"""build by awesome rust app"""
return {
'actions': ['cargo build']
}
上述假设是一个文件名为dodo.py
,为DOIT任务的默认名称,运行它:
> doit
另外值得一提(据我所知,他们是不是蟒蛇自动化工具详尽的清单):
os.system
致电贝和发送命令到shell,所以你可以很容易地做到这一点:
import os
cmd == """\
cd /somewhere
git pull
npm run build
make deploy
""""
os.system(cmd)
它是那么容易。我们往往忘记了os.system
也没有直接执行的命令,但它派遣命令外壳。因此,我们可以使用重定向和管道。