LoginSignup
7
7

More than 3 years have passed since last update.

dotfile で設定ファイルを管理できるようになって嬉しいので晒す

Last updated at Posted at 2019-06-02

dotfiles でファイル管理できるようになって嬉しいので晒す

以前からずっとやろうやろうと思っていたが、後回しにしていた dotfiles でのファイル管理

今回は、ついに、dotfiles でファイル管理を出来るようになって嬉しいので中身を晒します。

対象ファイル

  • .zshrc
  • .zshenv
  • Brewfile
  • settings.json(vscode)

ディレクトリ構成

dotfiles/
 ├─ zsh/
 │   ├─ .zshrc
 │   └─ .zshenv
 ├─ dotfile.sh
 ├─ Brewfile
 ├─ settings.json
 └─ dotfile.sh

GitHub Repository

dotfiles

覚えたこと

  • シンボリックリンク
  • shell script での条件分岐
  • zsh 設定ファイルのこと少し
  • Homebrew でアプリ管理することのメリット

内容

.zshrc

以下の記事を参考にしました。

zshの設定ファイルの読み込み順序と使い方Tipsまとめ

zsh は、ログイン時に $ZDOTDIR/ にある設定ファイル .zshrc を読み込み、起動してくれるそうで、
その $ZDOTDIR のデフォルトは $HOME となっています。
なので、色々な記事で、

.zshrc はルートページに配置しましょう!

と書いてあるんですね。

つまり、 $ZDOTDIR の場所を変更することで、 .zshrc の保存場所を変更できます。

では、 $ZDOTDIR はどこで定義し直すことが出来るのかですが、
それは、 $HOME/.zshenv によって定義することができます。

...何だか、問題が帰ってきた感じがします。。

ただ、私が調べた限り、これは固定で .zshenv の場所は変えられないようです。

よって、 .zshenv なるものをルートパスに置いて、ZDOTDIR=${HOME}/git管理するフォルダ とすることで、 .zshrc を git 管理できます。

.zshenv
export ZDOTDIR=${HOME}/dotfiles/zsh

Brewfile

Homebrew でインストールしたアプリケーションをリスト化して管理できます。

Homebrew をインストールするだけでは、Brewfile での管理は出来ないので、 Brewfile をするアプリを Homebrew でインストールする必要があります。

インストールコマンド

$ brew install rcmdnk/file/brew-file

こちらの記事を参考に .zshrc の中で、Homebrew のコマンド実行時に、 Brewfile を更新してくれるようにしました。

# brew

# brewfile を自動で更新する
if [ -f $(brew --prefix)/etc/brew-wrap ];then
  source $(brew --prefix)/etc/brew-wrap
fi

また、これだけだと ~/Brewfile となり、 dotfiles での管理ができません。

ZDOTDIR の要領で、 Brewfile の場所を変えます。

.zshrc
# brew

# brewfile を自動で更新する
if [ -f $(brew --prefix)/etc/brew-wrap ];then
  source $(brew --prefix)/etc/brew-wrap
fi

# brewfile の場所を変更する
export HOMEBREW_BREWFILE=~/dotfiles/Brewfile

vscode

vscode の setting.json も、せっかくなので git で管理したいです。

ここでシンボリックリンクを使います。

$ ln -s ${DOT_DIR}/settings.json $HOME/Library/Application\ Support/Code/User

vscide の setting.json の場所にシンボリックリンクで、 dotfiles の setting.json を貼り付けます。

これで終わり。

shell

最後に、これらを1つのコマンドで完結させるために shell script を作ります。

dotfile.sh
# なんどもこのディレクトリを指すことがあるので、このファイルの場所を先に宣言しておきます。
DOT_DIR=${HOME}/dotfiles

# Brewfile を見てアプリをインストール
brew bundle

# zsh インストールされて、使えるようになっているはずなので、 zsh 構成ファイルのシンボリックリンクを作成
ln -s ${DOT_DIR}/zsh/.zshenv ${HOME}/.zshenv

# ないとは思うが、念のため、 setting.json のシンボリックリンクを作成する前に、 VScode が入っているかを確認、
if [ -e ${HOME}/Library/Application\ Support/Code/User ]; then
  rm -f ${HOME}/Library/Application\ Support/Code/User/settings.json

  ln -s ${DOT_DIR}/settings.json $HOME/Library/Application\ Support/Code/User
fi

これでおしまいです。
他にも .gitignore_global や、スクリーンショットの保存先などなど、もっと色々な設定も、このファイルで管理できるようにしていきたいですね。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7