我使用带有命名空间的结构来分隔开发服务器和生产服务器的命令
结构是
fabfile/
__init__.py
dev.py
prod.py
dev.py 和 prod.py 都定义了不同的 env.shell 并且其中一个覆盖了另一个。
有没有办法为 fabric 使用每个文件的 env 配置?
请您参考如下方法:
我最终像这样覆盖了 @task 装饰器:
from functools import wraps
from fabric.api import task as real_task
def task(func):
@wraps(func)
def wrapper(*args, **kwargs):
with settings(shell='/path/to/my/shell'):
return func(*args, **kwargs)
return real_task(wrapper)
我不能以这种形式使用别名和其他 kwargs,但它适合我。
