asdf-community / asdf-flutter

flutter plugin for the asdf version manager
https://github.com/asdf-vm/asdf
MIT License
111 stars 31 forks source link

Support to fvm config json #29

Open juliogc opened 2 years ago

juliogc commented 2 years ago

Motivation

Unfortunately, asdf-vm isn't well known as we wish and usually, people tend to work with the specific language version manager so it's very common to face legacy version files instead of the .tool-versions.

Suggestion

As an asdf heavy user, it would be great if we could experience compatibility with these other version managers when working with legacy_version_files enabled, something similar to what we see on asdf-nodejs handling with .nvmrc or .node-version files.

Straight to the point, I believe it would be great if this plugin was able to handle the version specified on the .fvm/fvm_config.json.

Here's an example of this file:

{
  "flutterSdkVersion": "2.8.1",
  "flavors": {}
}
oae commented 2 years ago

I will look into this when I have time. Thank you for the feedback.

juliogc commented 2 years ago

@oae thanks for your interest!

In my local environment, I build a simple implementation of this feature and I would like to share it here with you. It worked very well with stable versions, but I don't test it with the other types available on the listing, like pre-beta, beta, dev, etc and that's why I don't make a PR with it.

bin/list-legacy-filenames

#!/usr/bin/env bash

echo ".fvm/fvm_config.json"

bin/parse-legacy-file

#!/usr/bin/env bash

version=$(cat "$1" | jq ".flutterSdkVersion" | sed -r 's/^"|"$//g');
echo "$version-stable";
joelpaulkoch commented 1 year ago

This would also help for builds on codemagic, they accept setting the flutter version using fvm_config.json