こんにちは、山田ハヤオです。お久しぶりです。
無事に国公立大学に合格し、共通テストも終えました。
大学までの数カ月間でタイピングの練習とGolangの勉強をしていました。
Golangの勉強の一環も兼ねて、ドットファイルをGitで管理するツールを書いたのでそれの紹介です。
lico
まず今回作ったツールのソースコードです。MITで公開しています。
純粋なGolangで書かれています。
もともとこのツールを使おうとしていたのですが、機能不足が否めなかった上に開発が2019年でストップしていたので、インターフェースを参考にしながら書き直した次第です。
使い方
インストール
まずは導入からです。
sudo sh -c "$(curl -L https://raw.githubusercontent.com/Hayao0819/lico/master/dl.sh)"
このコマンドで最新安定版のバイナリをインストールできます。
リポジトリ作成
licoはドットファイルをGitリポジトリで管理します。
なのでまずは格納するリポジトリを作成します。
今回はGitHub上に
を作成しました。
設定ファイル記述
licoはディレクトリ直下にあるlico.listを読みに行きます。
lico.listはリポジトリ内とホームディレクトリ内の配置を記述するファイルで、Golangのテンプレート構文をサポートしています。
テンプレート構文で利用可能な変数はlico env
コマンドで確認できます。
テンプレート構文については以下の記事を参考にしてください。
lico.listの基本構文は以下のとおりです。
<リポジトリでの(相対)パス> : <ホームディレクトリでの(相対)パス>
例えば、macOSでのみ追加するファイルの場合以下のように記述できます。
# コマンド
{{ if eq .OS "darwin" }}
./some/hoge.txt : {{ .Home }}/piyo.txt
{{ end }}
この場合リポジトリでsome/hoge.txt
にあるファイルを$HOME/piyo.txt
と定義しています。
licoのセットアップ
ファイルをリポジトリに設置し、設定ファイルを記述したらlicoを設定します。
まず以下のコマンドで初期化を実行します。
lico init <URL>
これで設定ディレクトリ内にリポジトリがcloneされます。
その後、次のコマンドでシンボリックリンクを作成します。
lico set
ファイルの変更
管理されているファイルを変更したら以下のコマンドでコミットできます。
lico commit <コミットメッセージ>
リポジトリのPull
lico pull
終わりに
まだ未完成で、いくつか問題点もありますが、初めてのGo製ツールにしてはうまくできたんじゃないかと思っています。
今後も色々改善していく予定です。それでは、また今度。
コメント