###前提・実現したいこと
macOSでGo 1.7
+ATOMエディタ
+go-plus
+project-manager
を使い、
Go開発を行う際、プロジェクト別にGOPATH, GOBIN, PATHを設定したい。
記載のものは全てインストール済だが、どうにもProject別にGOPATH、GOBINの変更ができない状態。
ATOMエディタで$HOME/godev/projectA/
の中では、環境変数を次のようにしたい。
export GOPATH=/home/moonphase/go:/home/moonphase/godev/projectA/go export GOBIN=/home/moonphase/go/bin:/home/moonphase/godev/projectA/go/bin export PATH=...(内容省略):/home/moonphase/go/bin:/home/moonphase/godev/projectA/go/bin
$HOME/godev/projectB/
の中では、環境変数を次のようにしたい。
export GOPATH=/home/moonphase/go:/home/moonphase/godev/projectB/go export GOBIN=/home/moonphase/go/bin:/home/moonphase/godev/projectB/go/bin export PATH=...(内容省略):/home/moonphase/go/bin:/home/moonphase/godev/projectB/go/bin
その他実現したいこと詳細
ATOMプラグイン、project-manager
を利用して、script
やatom-runner
でそれぞれプロジェクト別にgo run
した時に上記環境変数が効いている状態にしたい。
ATOMエディタでは projectA
、projectB
を開いている。それぞれを行ったり来たりするが、そのタイミングで切り替えたい。
具体的な操作と期待する動作
projectA/main.go
を開いたタイミングで先に書いたprojectA用の環境変数が設定され、go run
できること。
そのままprojectB/main.go
を開くと、先に書いたprojectB用の環境変数が設定され、go run
できること。
現在のGo言語開発環境のディレクトリ構成
$HOME/godev/projectA/ +- go/ +- bin/ $HOME/godev/projectB/ +- go/ +- bin/
現在の$HOME/.bash_profile
の内容
export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOPATH/bin
試したこと
1. ATOMプラグインatomenv
でやってみたこと
ATOMプラグインatomenv
はATOMコマンドatomenv:load
を実行してもプロジェクト配下の.atomenv.cson
を読み込んでくれない。
2. ATOMプラグインenv-from-shell
でやってみたこと
env-from-shell
の設定でVariables
にPATH, GOPATH, GOBIN
を指定。
projectAを開いた状態でenv-from-shell:copy
を実行しても環境変数は設定されない。
3. ATOMプラグイン000-project-shell-env
でやってみたこと
projectA
の環境変数は設定されたが、プロジェクトをprojectB
に切り替えても環境変数に変更なし。また、$HOME/.atom/project.cson
からprojectA
の設定を消しても毎回なぜかprojectA
, projectB
がATOM上に表示される。
projectA
のフォルダを削除すると、勝手に一つ上のディレクトリgodev
がプロジェクトに表示された。
どこかにprojectA
の設定が残ってる?
それとも自動でプロジェクトが読み込まれてる?
動作が謎。
一旦全てのプロジェクト情報を削除し、ATOMエディタを再起動。
projectA
だけが見える状態で、ここからプロジェクトを開くでProjectB
を開くと新しいATOMの画面が起動し、projectB
の環境変数と共に起動。
元々のprojectA
も期待する環境変数となっている。
複数のプロジェクトが設定されている状態でこのプラグインを使うと予期しない動作になるのか?
少しやりたいことに近づいたが、一つのATOMウインドウで環境変数を切り替えることはできないのか・・・
その他補足情報
direnv
を導入済で、bashで cd $HOME/godev/projectA
すると期待する環境変数が設定されている。
一番連携したいのはdirenv
direnv
と連携できるならそれが設定が集約できるので一番望ましいが設定方法が不明。
似たような解決方法でもいいのでアドバイスいただけますか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。