v/v.go
Marc Cataford 38450e0f72
feat: which + version commands (#13)
* refactor: simplify logic that determines which Python version is used

* feat: which to output path only, version to output full current version meta

* fix: command used in shims

* chore: bump version to 0.0.7
2023-11-28 05:19:34 +00:00

43 lines
1 KiB
Go

package main
import (
"os"
)
const (
Version = "0.0.7"
Author = "Marc Cataford <hello@karnov.club>"
Homepage = "https://github.com/mcataford/v"
)
// Main entrypoint.
func main() {
args := os.Args[1:]
currentState := ReadState()
cli := CLI{
Metadata: map[string]string{
"Version": Version,
},
}
err := cli.AddCommand(
"install", InstallPython, "v install <version>", "Downloads, builds and installs a new version of Python.",
).AddCommand(
"uninstall", UninstallPython, "v uninstall <version>", "Uninstalls the given Python version.",
).AddCommand(
"use", Use, "v use <version>", "Selects which Python version to use.",
).AddCommand(
"ls", ListVersions, "v ls", "Lists the installed Python versions.",
).AddCommand(
"version", CurrentVersion, "v version", "Prints the current version and its source.",
).AddCommand(
"which", Which, "v which", "Prints the path to the current Python version.",
).AddCommand(
"init", Initialize, "v init", "Initializes the v state.",
).Run(args, currentState)
if err != nil {
panic(err)
}
}