Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ゆる dotfiles 管理のすすめ (YUMEMI.grow 【自動化特集】) / Effortless dotfiles management at YUMEMI.grow

Daichi Hayashi
September 01, 2022

ゆる dotfiles 管理のすすめ (YUMEMI.grow 【自動化特集】) / Effortless dotfiles management at YUMEMI.grow

## Links

- [daichikuwa0618/dotfiles_sample: sample dotfiles repository for beginners](https://github.com/daichikuwa0618/dotfiles_sample)
- [daichikuwa0618/dotfiles: My environment on macOS](https://github.com/daichikuwa0618/dotfiles)

Daichi Hayashi

September 01, 2022
Tweet

More Decks by Daichi Hayashi

Other Decks in Technology

Transcript

  1. ゆる dot fi les 管理のすすめ 2022 年 9 月 1

    日 12:00 〜 13:30 オンライン開催 YUMEMI.grow 【自動化特集】 - connpass 🔗 株式会社ゆめみ iOS エンジニア 林 大地 (Daichi Hayashi)
  2. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. “ dot fi le = Unix 系 OS での隠しファイルや隠しフォルダを指す言葉。 dot fi le にはユーザー設定や状態・構成が保存されることが多く、これ らをまとめて管理するための Git リポジトリを慣習的に “dot fi les” と名付けることがある。 In Unix-like operating systems, any fi le or folder that starts with a dot character (for example, /home/user/.con fi g), commonly called a dot fi le or dot fi le, is to be treated as hidden[1] 3 [1] Hidden fi le and hidden directory - Wikipedia ⚙ dot fi les とは
  3. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. ✅ なぜ dot fi les を管理するのか • PC を新しくしたときや初期化した時に環境を復旧しやすくなる。 • 整備してあれば clone してきてコマンド 1 つで環境設定できちゃう! • 自分は研究室にある新入生用 Mac に同じ環境を反映したかった。 • (公開していれば) 他人に環境を共有しやすくなる。 • ここまで見て dot fi les やってみたい!と思った人は検索すると素敵なリ ポジトリが沢山あるので知ってもらっただけでこの発表の役割は終わ り。 4
  4. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. ⭐ ゆる dot fi les 管理とは • 僕が勝手にそう言ってるだけでちゃんとした定義は無い • 自動化を頑張らない dot fi les 管理 (自動化特集なのに…) • 環境メモのつもりで気軽にコミットを重ねる • 開発のようにちゃんと動くものである必要はなく、最新化を優先 • 保守性や可読性は気にしない。自分がやりやすいように運用する 6
  5. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. 💪 ゆめみでの 2 年で dot fi les が大活躍 • 新卒入社してからの 2 年で 5 回の初期セットアップを全て dot fi les リポジトリによって実施。 • 2019 16” → 2018 15” (修理の代替機) → 2019 16” (修理から帰ってきた) → 2020 M1 13” → 2021 M1 Pro 14” • いずれも半日後には通常業務を再開できるような環境にできた。 • ゆる dot fi les なので、完全なワン・コマンドでセットアップが全て 終わる!というものではないが、手動でやるよりは遥かに楽で時短に なった。 7
  6. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. 🏃 ゆる dot fi les 管理のはじめかた
  7. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. 🏃 ゆる dot fi les 管理のはじめかた 1. GitHub リポジトリを作って clone 2. .gitignore を作る 3. 現在の dot fi les をリポジトリにコピー 4. alias を貼るコマンドの作成 5. Brewfile の作成 9
  8. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. 🏃 1. GitHub リポジトリを作って clone 10 daichikuwa0618/dot fi les_sample サンプルリポジトリあり 👇 ステップごとに PR あり 👇
  9. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. 🏃 2. gitignore を作る • 便利なサイト: https://www.toptal.com/developers/gitignore/ • gitignore.io でリダイレクトされるはず • OSS になっている: https://github.com/toptal/gitignore.io • macOS と入れて Enter で macOS 用の gitignore が作られる • .DS_Store 等々 • PR: Add gitignore by daichikuwa0618 · Pull Request #1 · daichikuwa0618/dot fi les_sample 11
  10. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. 🏃 3. dot fi les をコピー • 管理したい dot fi les をリポジトリにコピペする。 • 先頭の “.” は取っても良い • 別名で alias を貼れる • 個人的には “.” は無くしている • PR: Add some dot fi les by daichikuwa0618 · Pull Request #2 · daichikuwa0618/dot fi les_sample 12
  11. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. 🏃 4. alias (symlink) を貼るスクリプトを作成 • ln コマンドによって alias を貼る。 • これで ~/.zshrc と dotfiles/zshrc のどっちを編集しても Git リポ ジトリに反映される。 • PR: Add install script by daichikuwa0618 · Pull Request #3 · daichikuwa0618/dot fi les_sample • ln -sf $(cd $(dirname $0); pwd)/tmux.conf $HOME/tmux.conf 
 としているのがミソ。 13
  12. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. 🏃 5. Brew fi le を作成 • brew bundle dump コマンドで Brewfile を作ってくれる! • PR: Add Brew fi le by daichikuwa0618 · Pull Request #4 · daichikuwa0618/dot fi les_sample 14
  13. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. 🏃 6. あとはゆるく dot fi les を育ててください • 後は自由ですが、いくつかのアイデアをサンプルリポジトリの README に書いていますので、参考にしてください。 • “ゆる dot fi les 管理” を楽しんで育ててください。 • 僕自信も dot fi les を育てるのが大好きです (業務中もやっちゃう) 15
  14. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. 📝 僕の dot fi les の運用 • .zshrc や .tmux.conf 等は alias が貼ってあるので、編集を加えれば 勝手に Git 側にも反映される • Alfred 等の頻繁に使う GUI アプリケーションの設定ファイルも alias を貼って GUI 側の変更が Git 側に反映されるように • ソフトウェアのインストールは Brewfile 経由を基本とする • 個人情報や機密情報は secret.zshrc 等のファイルに分割し、イン ポートの宣言だけを Git 側で管理 19
  15. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. # Homebrew Tap tap “homebrew/bundle" … # Homebrew brew “fzf” … # Homebrew cask cask “alfred" … # mas: Mac App Store mas "Slack", id: 803453959 # mas "Xcode", id: 497799835 ソフトウェアのインストール は Brew fi le 経由を基本とす る • brew (CLI), brew cask (GUI), mas (App Store) を Brew fi le にひと纏め • アンインストールする場合は行削除ではな く、コメントアウト (例: Xcode) • 開発でのコメントはノイズなので避けら れるが、またインストールしたくなった ときにアンコメントするだけで良いとい う状態は便利なので採用。 20 dot fi les/Brew fi le at main · daichikuwa0618/dot fi les より
  16. “ゆる dot fi les 管理のすすめ”, 林 大地, YUMEMI.grow 【自動化特集】, 2022

    年 9 月 1 日. # $HOME/secret.zshrc # alias 名や path に機密情報が含 まれている alias proj=‘cd path/to/project‘ # .zshrc SECURE_FILE="$HOME/secret.zshrc" if [[ -f $SECURE_FILE ]]; then source "$SECURE_FILE" fi # .gitignore secret.* 個人情報や機密情報の扱い • 別ファイルに機密情報を分けてインポート 宣言だけを Git 管理 • .zshrc であれば source secret.zshrc • 命名規則は secret.${extension} • secret.* を .gitignore で無視することで 全ての機密情報を Git から除外できる 21