ã¯ãã
golangã«éããªãã§ããã
ç°å¢ãã¨ã«ç°å¢å¤æ°ãåãæ¿ãããã¨ãã¯ã¾ãã¾ãããã¾ãããã
ãããªã¨ãã®direnvã¡ã¢ã§ãã
mac x golang
ãªç°å¢ãåæã«æ¸ãã¾ãã
direnvèªä½ã¯linuxã§ãä»ã®è¨èªãç°å¢ã§ãåãã§ãã
ã¢ã¸ã§ã³ã
- direnvã¨ã¯
- direnvã®installï¼è¨å®
- direnv使ã£ã¦ã¿ã
- direnv: error .envrc is blocked. Run
direnv allow
to approve its content.ãªã¨ã
1. direnvã¨ã¯
ã¾ãã¯direnvã®ãªãã¸ããª
https://github.com/direnv/direnv
ç°¡åã«ããã¨ããã¸ã§ã¯ãããã£ã¬ã¯ããªãã¨ã«ç°å¢å¤æ°ãåæã«åãæ¿ãã¦ãããåã§ãã
å
¬å¼ããå¼ç¨ããã¨ãããªæãã
direnv is an environment switcher for the shell. It knows how to hook into bash, zsh, tcsh and fish shell to load or unload environment variables depending on the current directory. This allows project-specific environment variables without cluttering the “~/.profile” file.
使ãã¨ãããªäºãå¯è½ã«ãªãã¾ãã
* ãã£ã¬ã¯ããªãã¨ã«GPATHãè¨å®ã§ãã * ãã£ã¬ã¯ããªã¸ç§»åããã¨èªåçã«è¨å®ãããï¼åºãã¨åæã«è§£é¤ï¼
2. direnvã®installï¼è¨å®
使ãåã®installï¼è¨å®ãç°¡åã§ã
# install $ brew update $ brew install direnv # shellã«è¨å® $ echo 'eval "$(direnv hook bash)"' >> ~/.bashrc
3. direnv使ã£ã¦ã¿ã
è¨å®ãã¦ã¿ã
ããã§ã¯ç°å¢ï¼ãã£ã¬ã¯ããªï¼ãã¨ã«GOPATHãåãæ¿ãã
ã¨ããä¾ã§æ¸ãã¾ãããä»ã®ç°å¢å¤æ°ã§ãåãã§ãã
# ç§»å $ cd path/to/è¨å®ããããã£ã¬ã¯ã㪠# .envrcã使 $ direnv edit . ---- viè¿½è¨ ---- export GOPATH=$(pwd) ---------------
ä½¿ãæ¹
# direnvãè¨å®ããdir以å¤ã«ããåæ $ pwd path/to/direnvè¨å®ãã¦ãªãdir # ç§»å $ cd path/to/è¨å®ããdir direnv: loading .envrc direnv: export ~GOPATH # åºã¦ã¿ã $ cd .. direnv: unloading
è£è¶³
direnv edit .
ã§ã¨ã©ã¼
direnv edit .
ããã¨direnv: $EDITOR not found
ãªã¨ã©ã¼ãã§ããã¨ãã¯$EDITORãè¨å®ãã¦ããã¾ã
# æããã $ direnv edit . direnv: $EDITOR not found. # bashrcã«è¨å®ï¼èªã¿è¾¼ã¿ $ echo 'export EDITOR=vim' >> ~/.bashrc $ source ~/.bashrc # vimãéãã°ok $ direnv edit .
4. direnv: error .envrc is blocked. Run direnv allow
to approve its content.ãªã¨ã
.envrc
ãç´æ¥ç·¨éããã¨ä»¥ä¸ã®ãããªã¨ã©ã¼ãåºãã¨ããããã¾ãã
ç·¨éå¾ã¯å®å
¨ã®ããã«direnv allow
ã§æç¤ºçã«èªã¿è¾¼ãã¾ã§ã¯ç¡å¹ã«ãªã£ã¦ããããã¨ããäºãããã§ãã
# ä½ãããããããã§ã direnv: error .envrc is blocked. Run `direnv allow` to approve its content. # ç´ ç´ã«æã¤ $ direnv allow
åè
çµãã
ãã¾ãã direnv ã®è§£èª¬ã¨ããè¨äºãåèã«ããã¦ããã£ã¦
ããã«ä»ããæãããã¾ããèªåç¨ã¡ã¢>ï¼¼(ï¼¾oï¼¾)ï¼