id = "fvm" name = "FVM" homepage = "https://fvm.app" description = "Flutter Version Management: A simple CLI to manage Flutter SDK versions." # The logo fvm.app puts in its own header. icon = "https://fvm.app/assets/logo.svg" executables = ["fvm"] [dotfiles] # lib/src/utils/constants.dart: kAppConfigFile = join(_configHome, kPackageName, # kFvmConfigFileName) with kPackageName "fvm" and kFvmConfigFileName ".fvmrc". # _configHome is %APPDATA% on Windows, /Library/Application Support on # macOS, and $XDG_CONFIG_HOME or /.config on Linux — the [appData] base # directory. The file is JSON — LocalAppConfig.read() parses it with # LocalAppConfig.fromJson. paths = ["[appData]/fvm/.fvmrc"] # Same file: kAppDirHome = /fvm is where FVM caches the SDKs, one full # Flutter checkout per version, plus the git mirror it clones them from. exclude = ["~/fvm/versions/", "~/fvm/cache.git/"] secret = [] # Read once while building the effective config for a command. side_effect = false # lib/src/models/config_model.dart LocalAppConfig: cachePath is the directory # this machine keeps the installed SDKs in and gitCachePath the local Flutter # git mirror — both absolute paths on this disk. flutterUrl, the update-check # and editor-integration flags are preferences and stay. The user moved those # two directories themselves — usually to keep a pile of SDKs off the system # volume — so the values are kept to set this machine up again: backup. # `.fvmrc` has no extension that names a parser, so the format is declared. [[dotfiles.machine_lines]] file = "[appData]/fvm/.fvmrc" format = "json" match = { key_path = ["cachePath", "gitCachePath"] } scope = "backup" [commands] format = 1 label = "Manage Flutter SDK versions" description = "Install, select, list and remove Flutter SDK versions with FVM. Config, flavors and proxied dart/flutter commands are left out." quality = "ai-draft" base = "fig:fvm" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/fvm.ts" license = "MIT" [[commands.subcommand]] path = ["install"] label = "Install a Flutter SDK" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/fvm.ts" license = "MIT" [[commands.subcommand.field]] id = "version" label = "Version or channel" type = "string" position = 0 suggestions = [{ value = "stable", label = "stable" }, { value = "beta", label = "beta" }, { value = "dev", label = "dev" }] sources = ["fig"] [[commands.subcommand.field]] id = "skip_setup" label = "Skip Flutter setup" type = "boolean" option = ["--skip-setup", "-s"] sources = ["fig"] [[commands.subcommand.task]] id = "install" label = "Install version" fields = ["version", "skip_setup"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["version", "skip_setup"] [[commands.subcommand]] path = ["use"] label = "Use a version in this project" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/fvm.ts" license = "MIT" [[commands.subcommand.field]] id = "version" label = "Version or channel" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "pin" label = "Pin latest release of channel" type = "boolean" option = ["--pin", "-p"] sources = ["fig"] [[commands.subcommand.field]] id = "force" label = "Skip project checks" type = "boolean" option = ["--force", "-f"] sources = ["fig"] [[commands.subcommand.task]] id = "use" label = "Use version" fields = ["version", "pin", "force"] required = ["version"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["version", "pin", "force"] [[commands.subcommand]] path = ["remove"] label = "Remove an installed version" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/fvm.ts" license = "MIT" [[commands.subcommand.field]] id = "version" label = "Version" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "force" label = "Skip global version check" type = "boolean" option = ["--force"] effect = "delete" sources = ["fig"] [[commands.subcommand.task]] id = "remove" label = "Remove version" fields = ["version", "force"] required = ["version"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["version", "force"] [[commands.subcommand]] path = ["list"] label = "List installed versions" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/fvm.ts" license = "MIT"