cliマネージャ "afx" を試す
目次
b4b4r07/afx: 📦 Package manager for CLIを使ってみる。
yamlファイルをもとに、宣言的にツールのインストールができるらしい。zplugの作者の作。 現状では GitHub / GitHub Release / Gist / HTTP (web) / Local からのインストールに対応している。
インストール
Goで書かれている。 go install
でもインストールできるようだが、
インストールスクリプトが用意されていたので今回はそちらを試す。
curl -sL https://raw.githubusercontent.com/b4b4r07/afx/HEAD/hack/install | bash
実行したところ、インストールスクリプトが上手く動かなかったため、PRを出しておいた。(2023/5/18 追記: マージされた)
また、コマンドを実行したところ設定ディレクトリが存在せず、エラーとなったため、 ~/.config/afx
を作成した。
なお、エラーになるのは不自然だと思ったので、こちらもPull-requestを作成しておいた。(2023/5/18 追記: マージされた)
この後、 .zshrc
に以下の2行を追記する。
# set up afx
type afx > /dev/null 2>&1 && eval "$(afx init)"
type afx > /dev/null 2>&1 && eval "$(afx completion zsh)"
2023/5/18 追記: 上記の設定では補完が出ないことが判明した。上の2行の下に以下を追加すれば無事補完が効いた(バグかも)
type afx > /dev/null 2>&1 && compdef _afx afx
neovimをビルドしてみる
以下のyamlを ~/.config/afx/github.yaml
に配置する。
github:
- name: neovim/neovim
description: Vim-fork focused on extensibility and usability
owner: neovim
repo: neovim
branch: master
with:
depth: 1
command:
build:
steps:
- make CMAKE_BUILD_TYPE=RelWithDebInfo
env:
EDITOR: nvim
alias:
vi: nvim
link:
- from: build/bin/nvim
この状態で afx install
を実行し、ビルドに成功した。
gitリポジトリは ~/.afx/github.com
以下に展開されていた。
このうち、yamlの link
で指定したバイナリが ~/bin
へとリンクされていた。
パッケージの更新
NeovimのHEADを追いかけ続けるために、 afx update
で最新にアップデートしたい。
しかし、 afx update
を実行しても git fetch
をしている様子はなかった。
ソースを確認したところ、TOODコメントが記載されていた。 今後の実装に期待、または自分で実装をしたい。
まとめ
ビルドの自動化ができて便利そうだった。 今後はchezmoiとの連携、各種環境でのビルドに取り組みたい。
にしても、 afx
は検索ノイズが多かった。
References
- 新しいコマンドラインツール向けのパッケージマネージャ | tellme.tokyo
- neovim/neovim: Vim-fork focused on extensibility and usability
- b4b4r07/afx: 📦 Package manager for CLI
- AFX
コメント
Github Issue と連動しています。