名前空間を持つファブリックを使用して、開発サーバーと運用サーバーのコマンドを分離しています
構造は
fabfile/
__init__.py
dev.py
prod.py
dev.pyとprod.pyは両方とも異なる定義env.shellをしており、そのうちの 1 つが別のものをオーバーライドします。
envファブリックにファイルごとの構成を使用する方法はありますか?
@taskデコレータを次のようにオーバーライドすることになりました。
functoolsインポートラップから
fabric.api からタスクを real_task としてインポート
デフォルトタスク(関数):
@wraps(関数)
def wrapper(*args, **kwargs):
設定あり(shell='/path/to/my/shell'):
return func(*args, **kwargs)
return real_task(wrapper)
この形式ではエイリアスやその他の kwargs を使用できませんが、私には適しています。