2014-09-29 61 views
1

我想鏈兩個任務:面料:管任務的另一個任務的輸入輸出

  • 第一個創建
  • 第二個上傳歸檔到檔案(create_archive)具有任意名稱一個FTP服務器(upload_archive

我想調用它們像這樣:fab create_archive upload_archive

有什麼辦法/語法自動傳遞create_archive的輸出到upload_archive的輸出像bash |這樣的字符呢?

在此先感謝

回答

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 

然後在外殼:

$ fab setup task1 task2