๐Ÿ‘ป OS & Tools/Tools

ํด๋”๋ณ„๋กœ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” direnv

๋ณต๋งŒ 2023. 5. 6. 15:08

https://github.com/direnv/direnv

 

GitHub - direnv/direnv: unclutter your .profile

unclutter your .profile. Contribute to direnv/direnv development by creating an account on GitHub.

github.com

 

direnv๋Š” ํด๋”๋ณ„๋กœ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํˆด์ด๋‹ค. 

 

1. ์„ค์น˜๋ฐฉ๋ฒ•

apt-get install direnv #Linux
brew install direnv #MacOS

 

 

2. shell์— hook ์„ค์ •

์‚ฌ์šฉํ•˜๋Š” shell์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ hook์„ ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

2.1. bash

vi ~/.bashrc
#๋งจ ์•„๋ž˜์— ๋‹ค์Œ ๋‚ด์šฉ ์ถ”๊ฐ€
eval "$(direnv hook bash)"

 

2.2. zsh

vi ~/.zshrc
#๋งจ ์•„๋ž˜์— ๋‹ค์Œ ๋‚ด์šฉ ์ถ”๊ฐ€
eval "$(direnv hook zsh)"


์ด์™ธ์˜ shell์€ ๋‹ค์Œ ๋งํฌ ์ฐธ๊ณ 

https://github.com/direnv/direnv/blob/master/docs/hook.md

 

GitHub - direnv/direnv: unclutter your .profile

unclutter your .profile. Contribute to direnv/direnv development by creating an account on GitHub.

github.com

 

 

3. ์‚ฌ์šฉ๋ฒ•

.envrc ํŒŒ์ผ์— ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

#example
#.envrc
export FOO="foo"

 

.envrc ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—๋Ÿฌ๋ฉ”์„ธ์ง€๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

direnv allow ๋ช…๋ น์„ ํ†ตํ•ด direnv๋ฅผ ํ™œ์„ฑํ™”์‹œ์ผœ์ฃผ๋ฉด ํ•ด๋‹น ํด๋”์—์„œ ์ž๋™์œผ๋กœ ํ™˜๊ฒฝ๋ณ€์ˆ˜๊ฐ€ ์„ธํŒ…๋œ๋‹ค.

 

์„ค์ •๋œ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

ํ•ด๋‹น ํด๋”๋ฅผ ๋‚˜๊ฐ€๋ฉด ๋‹ค์‹œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •์ด ํ•ด์ œ๋œ๋‹ค.

 

์งฑ

๋ฐ˜์‘ํ˜•