13

システム環境変数に大きく依存するローカル開発環境 (Heroku 12-factor アプリ モデルに従います) があり、現在、シェル スクリプトを使用してこれらを設定しています。シェル スクリプトは git remotes もセットアップし、virtualenv 環境をアクティブにします。可能であれば、これらすべてを Fabric コマンド (または一連のコマンド) に移動したいと思います。これは、Fabric を他の多くのものに使用しているためです。 、シェル スクリプトを廃止したいと考えています。

実行local('export FOO=bar')が機能しません:

$ fab set_default_env_vars
Using fabfile '/home/hugo/Projects/test/fabfile.py'
[localhost] local: export FOO=bar

Done.

$ echo $FOO

$

これは可能ですか?

4

1 に答える 1

20

変数を使用fabric.context_managers.shell_envしてexport、シェルとそこから生成されたすべてのサブシェルを bash できますが、これらの変数は、定義されたシェルを超えて保持されません (したがって、ファブリック スクリプトから親シェルの環境変数を設定することはできません)。あなたの例がそれを持っている方法)。

ローカル環境用にソースとして使用する bash スクリプトをセットアップできます。このスクリプトは、本番環境のスラッグに追加するものと同じ~/.profileであり (キーではなく、値である必要はありません) fabric.context_managers.prefix、ローカル コマンドを実行する前にそのファイルをソースとして使用できます。

于 2012-12-05T04:14:42.677 に答える