dotfilesを作るぞい

dotfielsを唐突に作りたくなったので調べていく
基本的にMacとWSL上で同じように動くのが一番いいがMac特有XCode系のコマンドは動かすのが難しいから分ける必要がありそう?
セットアップしたいやつ一覧
- homebrew
- iterm
- nvim
- zshrc
とりあえずこんなところ
必要になったら追加していこう
参考になりそうなやつ
Makefileはあると良さそう
.gitignoreも適切に設定を追加する必要がありそう
シンボリックリンクを作成してホームディレクトリにある状態と同じようにしてあげると管理しやすそう

やってく
自分の場合はghqでリポジトリの一元管理をしているので~/src/github.com/happy663の直下にdotfilesディレクトリを作成する
また.binディレクトリも作成しておく
mkdir dotfiles
cd dotfiles
mkdir .bin
次にMakefileだが参考サイトの奴をとりあえずそのまま使う
Makefileのコマンド複数実行できたの初知り
# Do everything.
all: init link brew
# Set initial preference.
init:
.bin/init.sh
# Link dotfiles.
link:
.bin/link.sh
# Install macOS applications.
brew:
.bin/brew.sh
スクリプト周りもそのまま使おうと思ったがzshなので少し変更
brewのインストールの後にpathの設定が必要だった気がするが必要になったら追記しよう
#!/bin/zsh
if [ "$(uname)" != "Darwin" ] ; then
echo "Not macOS!"
exit 1
fi
# Set zsh
chsh -s /bin/zsh
# Install xcode
xcode-select --install > /dev/null
# Install brew
/bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" > /dev/null
シンボリックリンクを貼るスクリプト
#!/bin/zsh
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
for dotfile in "${SCRIPT_DIR}"/.??* ; do
[[ "$dotfile" == "${SCRIPT_DIR}/.git" ]] && continue
ln -fnsv "$dotfile" "$HOME"
done
.zshrcをbinディレクトリに移動させてリンクを作成できるか試す
❯ make link ─╯
.bin/link.sh
make: .bin/link.sh: Permission denied
make: *** [link] Error 1
実行権限がなくてエラーが出たので付与
chmod +x link.sh
もう一回試す
❯ make link ─╯
.bin/link.sh
/Users/toyama/.zshrc -> /Users/toyama/src/github.com/dotfiles/.bin/.zshrc
良さそう

.zshrc以外のファイルも移動させていくぞと思ったが具体的に何を移動させようかな
大体上記で述べたやつ.configに入ってるから.configを移動させる
mv .config/ ~/src/github.com/dotfiles/.bin

brewの設定も移動させたい
brewの設定は以下で吐き出せるみたい
brew bundle dump --global
ホームディレクトリに.Brewファイルが作成されていたのでこれも.binに移動させておく

現状はこんな感じ
.
├── .bin
│ ├── .Brewfile
│ ├── .config
│ ├── .zshrc
│ ├── init.sh
│ └── link.sh
└── Makefile
ファイルを追加したのでmake linkでシンボリックリンクを作成しておく

brewインストールするためのスクリプトを追加
#!/bin/zsh
if [ "$(uname)" != "Darwin" ] ; then
echo "Not macOS!"
exit 1
fi
brew bundle --global