Обычно Fabric завершает работу, как только вызов run () возвращает ненулевой код выхода. Однако для некоторых звонков это ожидается. Например, PNGOut возвращает код ошибки 2, когда не удается сжать файл.
В настоящее время я могу обойти это ограничение только с помощью логики оболочки ( do_something_that_fails || true
или do_something_that_fails || do_something_else
), но я бы предпочел сохранить свою логику на простом Python (как и обещание Fabric).
Есть ли способ проверить код ошибки и отреагировать на него вместо того, чтобы Fabric паниковал и умирает? Я все еще хочу поведение по умолчанию для других вызовов, поэтому изменение его поведения путем изменения среды не кажется хорошим вариантом (и, насколько я помню, вы можете использовать это только для того, чтобы предупредить его, а не умирать в любом случае).