はじめに
私は、Macのデフォルトシェルがbashだった頃から、fishを使っています。POSIX非互換ですが、ユーザーフレンドリーなシェルとして非常に使いやすいです。
CLIツールのバージョン管理ツールとして、これまでasdf-vmを使用してきました。導入当時、所属企業でkubectlやterraformの環境差分が大きく、環境ごとにバージョンを変えないといけない状況だったため、非常に重宝していました。導入当時記事も書いてます。
また、いくつかasdf pluginを作成して、公式に導入もしています。
同じようなツールとしてaquaがあります。最近aquaを使い始めたので、fish shellでaquaを使うときの設定を書いてみようと思います。aquaを採用しようと思ったのは、Registryが中央集権的でプラグイン導入の安全性が一定あることが大きいかなと思います。また、aquaで対応していないツールなんかもあるため、しばらくはasdf-vmとの併用になると思います。(所属チームでもasdf-vmを使用していますし)
インストール、設定
まず、インストールです。Macを使っているので、以下を実行します。
(他環境については公式サイトを確認ください。)
$ brew install aquaproj/aqua/aqua
次に、PATH設定です。公式サイトには以下のように書かれています。
export PATH="${AQUA_ROOT_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/aquaproj-aqua}/bin:$PATH"
fish shellを使っているので、config.fishに以下を記載します。
set -gx XDG_DATA_HOME $HOME/.local/share set -gx AQUA_ROOT_DIR $XDG_DATA_HOME/aquaproj-aqua set -gx PATH $AQUA_ROOT_DIR/bin $PATH
シェル補完について
aqua にはシェル補完スクリプトの出力機能がありますが、bash, zshにしか対応していないみたいなので、fishのシェル補完スクリプトを作成しました。
導入方法は、他のfish plugin同様にFisher等でインストールするだけです。
ここまでの設定でfish shellでaquaを使う下地ができたかなと思います。