ぶていのログでぶログ

思い出したが吉日

任意のURLからダウンロードするasdf/rtxプラグイン asdf-simple-download を作った

github.com

モチベーション

私は普段ソフトウェアのバージョン管理に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:k1LoWgh-setupでよかったじゃんってことに気がついた。 でもブログを書き終わったあとに気がついたのでセーフ。

*1:プラグインのディレクトリにあるplugin.configを書き換えればよいが手間