モチベーション
私は普段ソフトウェアのバージョン管理にrtxを使っている。
大抵のソフトウェアは有志によりプラグインが作られているので rtx plugin add
すればインストールすることができる。
しかしながら、プラグインがないソフトウェアも存在する。
その場合プラグインを作るのがいいのだけど、さすがに手間である。
そこで、任意のURLからダウンロードを行うだけのプラグインを作った。
使い方
rtx plugin add
するときに $ASDF_PLUGIN_DOWNLOAD_URL
環境変数を設定する必要がある。
この環境変数にはダウンロードを行うバイナリを含んだtarballかzipファイルのURLを指定する。
$ export ASDF_PLUGIN_DOWNLOAD_URL=https://example.com/example-software-1.0.0.tar.gz
登録する際のプラグイン名は任意で設定することができる。 この例ではexampleとする。
$ export PLUGIN_NAME=example $ rtx plugin add $PLUGIN_NAME https://github.com/buty4649/asdf-simple-download.git
プラグインを追加したらあとはインストールするだけである。
$ rtx global ${PLUGIN_NAME}@latest
asdfのときもほぼ同じ手順で追加できる。
$ export ASDF_PLUGIN_DOWNLOAD_URL=https://example.com/example-software-1.0.0.tar.gz $ export PLUGIN_NAME=example $ asdf plugin add $PLUGIN_NAME https://github.com/buty4649/asdf-simple-download.git $ asdf install $PLUGIN_NAME latest $ asdf global $PLUGIN_NAME latest
制約
asdf/rtxではソフトウェアのバージョンも管理できるが、このプラグインではlatestとしか表示されない。 ASDF_PLUGIN_DOWNLOAD_URLをあとから変更できない*1のと、ASDF_PLUGIN_DOWNTOWN_URLからバージョンを推測する機能もない(というか作る気がない)のでlatestとして、それだけのバージョンとした。
おまけ
GitHubリポジトリのReleaseからダウンロードするだけならid:k1LoWのgh-setupでよかったじゃんってことに気がついた。 でもブログを書き終わったあとに気がついたのでセーフ。
*1:プラグインのディレクトリにあるplugin.configを書き換えればよいが手間