📚

afx で cli ツールを管理してみた

2022/12/04に公開

この記事は mirko-san のアドベントカレンダー Advent Calendar 2022 の 12月 4日の記事です。

こんにちは。
12月 3日の記事では zinit で cli ツールを管理してみましたが、本日は afx での管理を試みます。

経緯

いろいろな方法で cli ツールをインストールしがちなエンジニアである私が、インストールしている cli ツールをテキスト管理したいという気持ちのもと afx を試しました。

題材として、私の自作コマンドである mstanzaku のインストールを書いてみました。

afx のインストール

https://babarot.me/afx/

インストールは golang があれば手っ取り早く go install で入る。

https://babarot.me/afx/getting-started/#go-install

$ go install github.com/b4b4r07/afx@latest

golang が無い環境用にもバイナリが配布されているので、こちらを適当なパスが通っているところに置けば動きそう。

https://babarot.me/afx/getting-started/#manually

afx で自作コマンドのインストールをしてみる

少し悲しいニュースだが、 github からのインストールを行う場合は GITHUB_TOKEN 環境変数が必要になりそうだった。
(回避策があれば教えてほしいです😢)

今回は試しに Github の PAT を払い出す。

https://docs.github.com/ja/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token

その先は簡単で、以下のような yaml を書くと mtanzaku コマンドが使えるようになりました。

~/.config/afx/main.yaml
github:
  - name: mirko-san/mtanzaku
    owner: mirko-san
    repo: mtanzaku
    release:
      name: mtanzaku
      tag: v0.1.1
      asset:
        filename: mtanzaku-x86_64-unknown-linux-gnu.tar.gz
    command:
      link:
        - from: mtanzaku
          to: mtanzaku
      snippet: |
        export PATH="$PATH:/home/mirko-san/.afx/github.com/mirko-san/mtanzaku"
~/.zshrc
source <(afx init)

zinit ice と比べると大変書きやすいという気持ちでした。定義が直感的!
ただし、 Github の PAT が必要だけれど…。

さいごに

afx は書き心地がすごく良かったです。
zinit ice はオプションがあまり直感的ではなかったので、自分は afx に移行してみようかなと思いました!

ちなみに、 mirko-san のアドベントカレンダー Advent Calendar 2022 では 2022 年 12月 25日までできれば毎日適当なポエムやプログラミングに関する記事を投稿予定です。
(週末はプログラミングに関する記事メインの予定です)
よろしければ12月のお供に見てみて下さい🤟

GitHubで編集を提案

Discussion