Closed4
書き直したasdf-flutterをrtxで使うとfvmの設定ファイルを読み込んでくれない
上記で書き直したasdf-flutterプラグインをrtxで使った時にfvmの設定ファイル(.fvm/fvm_config.json
)が存在すると下記のエラーが出力される。
[DEBUG] rtx::config: Files: ~/path/to/.fvm/fvm_config.json, ~/.config/rtx/config.toml
Installed Plugins: flutter
[DEBUG] rtx::cli: rtx hook-env -s fish
[DEBUG] rtx::toolset::builder: flutter@latest
Error:
0: No such file or directory (os error 2)
Location:
src/hook_env.rs:115
Version:
2023.10.1 macos-arm64 (2023-10-05)
Suggestion: Run with RTX_DEBUG=1 for more information.
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
asdfではfvmの設定ファイルからFlutterのバージョンを設定してくれる。
エラーを読むと何かのファイルが無いと言っている。
プラグインがlegacy version files
として返す文字列がファイル名ではなくパスになっているのが原因では無かろうか?
rtxのコードと挙動を見る限り、たぶんlist-legacy-filenames
がパスを返す事を考慮してないような気がする。サブディレクトリ内に設定ファイルを置くというお作法はfvm以外では見た記憶が無いし、asdfもスクリプトの命名的には考慮してないのでは?(動くけど)という気がする。
幸いな事にrtxでは下記のように返してあげれば動くようなので一旦のワークアラウンドにしよう。(カレントディレクトリのfvm_config.json
も読み込んでしまうけどエラーを吐くよりはマシなので)
echo ".fvm/fvm_config.json fvm_config.json"
(すごいエッジケースな気がするのでrtxにPR出すかは微妙な所...)
FVM 3.0からは.fvmrc
というファイルにランタイムのバージョンが書かれるようなので、このスクラップの懸念は忘れても良さそう。
Config file is now .fvmrc instead of .fvm/fvm_config.json
このスクラップは2023/10/16にクローズされました