我想将两项任务联系起来:
create_archive
)
upload_archive
)我想像这样调用它们:fab create_archive upload_archive
是否有一种方法/语法可以自动将create_archive
的输出传递给upload_archive
的输出,就像bash |
字符一样?
提前致谢
答案 0 :(得分:0)
看起来不像。我在http://docs.fabfile.org/en/1.10/上没有在结构文档中看到任何提及。
我能想到的最接近的事情是使用外部变量管理状态,比如附加到env
或模块中的全局变量。
即:
from fabric.api import run, env, task
@task
def setup():
env.hosts = ['localhost']
env.counter = 1
env.lines = ""
@task
def task1():
env.counter += 1
result = run("seq {}".format(env.counter))
env.lines += "#task1\n{}".format(result)
@task
def task2():
env.counter += 1
result = run("seq {}".format(env.counter))
env.lines += "#task2\n{}".format(result)
@task
def task3():
print repr(env.lines)
# fab setup task1 task2 task3
然后在shell中:
$ fab setup task1 task2