通常,一旦 run() 调用返回非零退出代码,Fabric 就会退出。但是,对于某些呼叫,这是意料之中的。例如,PNGOut 在无法压缩文件时返回错误代码 2。
目前我只能通过使用 shell 逻辑(do_something_that_fails || true
或do_something_that_fails || do_something_else
)来规避这个限制,但我宁愿能够将我的逻辑保留在纯 Python 中(就像 Fabric 的承诺一样)。
有没有办法检查错误代码并对其做出反应,而不是让 Fabric 恐慌和死亡?我仍然想要其他调用的默认行为,所以通过修改环境来改变它的行为似乎不是一个好的选择(据我记得,你只能用它来告诉它警告而不是死掉)。