zinit で cli ツールを管理してみた
この記事は mirko-san のアドベントカレンダー Advent Calendar 2022 の 12月 3日の記事です。
利用している cli ツールをテキスト管理したい
こんにちは。
みなさんは Zenn を読むような開発者なわけですから、もちろん日ごろ色々な cli ツールを利用していることかと思います。
それらのインストールを色々な方法で行っていないでしょうか?
sudo apt install <name>
go get <name>
cargo install <name>
などなど…。
私はいつも何も考えず「 Getting start に書いてあるしな~」の気持ちでどんなコマンドもホイホイ打ってきましたが、あるときふと思いました。
「どのコマンドをどんな方法でインストールしたか覚えてないな???🤔🤔🤔」
と…。
これだと新しく環境を構築したときに困ってしまいますよね。
まあべつに
which <command>
なりでどこに格納されているか見るなり、 apt のリストを見るなりしたら大抵の場合分かるんですけども。
そんなのエンジニア way じゃないじゃん???
なんでもテキスト管理したい!そんな気持ちが産まれることもありますよね。
ということで zinit での管理を試してみることにしました💪
この記事では zinit
での cli ツールの管理の使い心地を紹介します。
zinit のインストール
zinit
をインストールすると以下のようなコードが ~/.zshrc
に追加されました。
### Added by Zinit's installer
if [[ ! -f $HOME/.local/share/zinit/zinit.git/zinit.zsh ]]; then
print -P "%F{33} %F{220}Installing %F{33}ZDHARMA-CONTINUUM%F{220} Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f"
command mkdir -p "$HOME/.local/share/zinit" && command chmod g-rwX "$HOME/.local/share/zinit"
command git clone https://github.com/zdharma-continuum/zinit "$HOME/.local/share/zinit/zinit.git" && \
print -P "%F{33} %F{34}Installation successful.%f%b" || \
print -P "%F{160} The clone has failed.%f%b"
fi
source "$HOME/.local/share/zinit/zinit.git/zinit.zsh"
autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_zinit
# Load a few important annexes, without Turbo
# (this is currently required for annexes)
zinit light-mode for \
zdharma-continuum/zinit-annex-as-monitor \
zdharma-continuum/zinit-annex-bin-gem-node \
zdharma-continuum/zinit-annex-patch-dl \
zdharma-continuum/zinit-annex-rust
### End of Zinit's installer chunk
とりあえずヨシ。
zinit で自作コマンドのインストールをしてみる
ここからは私の自作コマンドである mstanzaku のインストールを試みてみます。
もろもろ zinit の README を解読したところ、以下のように書いたら mtanzaku コマンドが使えるようになりました。
# mtanzaku
zinit ice as"program" from"gh-r" \
pick"mtanzaku" \
bpick"*x86_64-unknown-linux-gnu*"
zinit light mirko-san/mtanzaku
Github release のコードを使う場合は zinit ice
を駆使していく感じになりそうです。
所感
zinit ice
はかなりオプションが豊富でした。
どんなケースでも対応できそうな凄みを感じるので、細かいエッジケースに悩まされるよりすべてを一つのツールで管理したい場合は、良い選択しかもしれません。
ただ、若干記法の読みにくさは感じます。定期的に書かないと細かいお作法を忘れそう😢
さいごに
mirko-san のアドベントカレンダー Advent Calendar 2022 の 12月 4日の記事では afx での管理を試します!
cli ツールのテキスト管理モチベがある方はぜひ明日も記事を読んでくれると嬉しいです🤗
Discussion