やりたいこと
- プロジェクトディレクトリ下でのみ有効なコマンドを作りたい
- 自分が使うためのものなので、Git管理下には置きたくない
手順
方針
- プロジェクトディレクトリに自分専用のフォルダ
tsuemura
を作る -
tsuemura/bin
にスクリプトを保存する - Gitが
tsuemura
を常に無視するように設定する - プロジェクトフォルダに入った時だけ
tsuemura/bin
にパスを通すようにする
Gitの設定
MacなどUnix系OSの場合は$HOME/.config/git/ignore
に下記設定を追加する。
$HOME/.config/git/ignore
tsuemura
.envrc
```
Windowsの場合は事前にignoreファイルのパスをgitに設定しておかないといけない。PowerShellで以下を実行する。
```powershell
git config --global core.excludesfile "$Env:USERPROFILE\.config\git\ignore"
```
`tsuemura` は自分用のスクリプトを入れておく場所。
ついでに`.DS_Store`とか`.vscode`とかも書いておくと吉。
`script`や`bin`でなく自分の名前にしてあるのは、プロジェクト内にもともと存在するファイルとの干渉を防ぐ為。
### direnvの設定
Homebrewを利用している場合は↓でOK。
```
$ brew install direnv
```
シェルの設定(bashの場合)
```
$ echo 'eval "$(direnv hook bash)"' >> .bashrc
$ source ~/.bashrc
```
プロジェクトディレクトリに移動して、`.envrc`というファイルにPATHの設定を書く。
```.envrc
export PATH=./tsuemura/bin:$PATH
```
direnvの設定を反映する。
```
$ direnv allow
```
## 確認
`tsuemura/bin`に保存したコマンドが、プロジェクトディレクトリ内では動く。
```bash:hello-world
#!/usr/bin/bash
echo "Hello World!
```
```
$ cd /path/to/your/project
$ hello-world
Hello World!
```
```
$ cd
direnv: unloading
$ hello-world
bash: command not found: hello-world
```