yadmでdotfilesを楽々管理
.zshrc
や.config/nvim
、settings.json
などなど、
エディターやツールの設定ファイルをdotfilesとして管理している人は多いと思います。
それらの設定ファイルをGitで管理したり、シンボリックリンクを手動やスクリプトで張ったりやり方は人それぞれですが、
わたしなんかはなんだかんだでデバイス間同期や管理が面倒でなんやかんやで形骸化しちゃってました。
色々ツールを試してみたのですが、どれも自分にはしっくりこず。
そんな中ようやくドンピシャなツールを見つけることができました。
それが今回紹介するyadmです。
yadmとは
Yet Another Dotfiles Manager
を謳う設定ファイルの管理ツールです。
yadmの何が便利か
Gitとほぼ同等のコマンドで管理できる
-
yadm add
でファイルを追加 -
yadm commit
でコミット -
yadm push
でプッシュ
など、Gitとほぼ同じコマンドで管理できます。
ツール固有のコマンドを覚える必要がないので、Gitを使ったことがある人ならすぐに使いこなせるでしょう。
シンボリックリンクが不要
yadmが管理するファイルは、実際のファイルがある場所に直接配置されます。
そのため、シンボリックリンクを張る必要がありません。
既存の設定ファイルをそのまま利用できる
既存の設定ファイルをコマンド一発でyadmの管理下におくことができます。
一度作った設定ファイルを作り直したりする必要もありません。
Gitとの連携が便利
yadm pushでリモートリポジトリに設定ファイルをプッシュできます。
リモートリポジトリをクローンするだけで、利用している端末で設定ファイルをすぐに使うことができます。
もちろんprivateリポジトリで運用することができますので、セキュリティも安心です。
ファイル名が変わらない
他の有名なツールとしてchezmoiも試してみたのですが、リポジトリ管理されるファイルの実態において、ファイル名が変わってしまうという点において違和感を感じてしまったので採用を見送った経緯があります。
好みの問題もあると思うので、気になった方は実際に両方試してみるのもいいかもしれません。
インストール
公式サイトにインストール方法が記載されています。
ここではmacOSの場合のインストール方法を紹介します。
brew install yadm
他のOSや管理ツールにもバッチリ対応しています。公式サイトを参考に環境に合わせたインストール方法を選択してください。
使い方
使い方も公式サイトに丁寧に記載されていますが、簡単に紹介します。
初期設定
yadm init
設定ファイルの追加
追加したい設定ファイルをyadm add
で追加します。
addしないファイルはyadmで管理されないので、逐次的に導入していくこともできます。
yadm add .zshrc
コミット
yadm commit -m "Add .zshrc"
リモートリポジトリの設定
yadm remote add origin <url>
プッシュ
yadm push -u origin <local branch>:<remote branch>
別の端末で設定ファイルを使う
GitHubなどで管理していれば、別の端末からも設定ファイルを使うことができます。
その際は他のGitリポジトリと同じようにクローンして使います。
yadm clone <url>
これだけで他の端末でも同様の環境にて各種ツールを使うことができます。
まとめ
yadmには他にもBootstrapを使ってHomebrewなどのパッケージマネージャーの設定も管理できたり、
設定ファイルのテンプレートを使って新しい設定ファイルを作成することもできたりと、痒いところに手が届く機能を備えています。
ぜひ公式サイトを参考にして、ポータビリティの高い設定ファイル管理を実現してみてください。
Discussion