45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
cli "v/cli"
|
|
state "v/state"
|
|
)
|
|
|
|
const (
|
|
Version = "0.0.8"
|
|
Author = "Marc Cataford <hello@karnov.club>"
|
|
Homepage = "https://github.com/mcataford/v"
|
|
)
|
|
|
|
// Main entrypoint.
|
|
func main() {
|
|
args := os.Args[1:]
|
|
currentState := state.ReadState()
|
|
|
|
cli := 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)
|
|
}
|
|
}
|