func main()

in ci-tools/main.go [45:119]


func main() {
	currentVersion, err := lookupVersion()
	if err != nil {
		fmt.Println(err)
	}

	commandsArgs := &args{}

	getVersionCmd := flag.NewFlagSet("get-version", flag.ExitOnError)
	validateRegisteredVersionsCmd := flag.NewFlagSet("validate-registered-versions", flag.ExitOnError)

	getUnregisteredVersionsCmd := flag.NewFlagSet("get-unregistered-versions", flag.ExitOnError)
	getUnregisteredVersionsCmd.IntVar(&commandsArgs.unregisteredVersionsCount, "count", lookupUnregisteredVersionsCount(),
		"Number of unregistered versions to list")

	registerWasmCmd := flag.NewFlagSet("register-wasm", flag.ExitOnError)
	addVersionFlag(&commandsArgs.version, currentVersion, registerWasmCmd)

	generateConstantsCmd := flag.NewFlagSet("generate-constants", flag.ExitOnError)
	addVersionFlag(&commandsArgs.version, currentVersion, generateConstantsCmd)

	generateProcessorsUpdateCmd := flag.NewFlagSet("generate-processors-update", flag.ExitOnError)
	addVersionFlag(&commandsArgs.version, currentVersion, generateProcessorsUpdateCmd)

	switch os.Args[1] {
	case getVersionCmd.Name():
		version, err := extractProcessorsVersionFromGoModule()
		if err != nil {
			fmt.Println(err)
		} else {
			fmt.Println(version)
		}
	case generateConstantsCmd.Name():
		_ = generateConstantsCmd.Parse(os.Args[2:])
		err = generateVersionsDotGoFile(commandsArgs.version)
		if err != nil {
			fmt.Println(err)
		} else {
			fmt.Println(commandsArgs.version)
		}
	case registerWasmCmd.Name():
		_ = registerWasmCmd.Parse(os.Args[2:])
		err = registerWebAssemblyVersion(commandsArgs.version)
		if err != nil {
			fmt.Println(err)
		} else {
			fmt.Println(commandsArgs.version)
		}
	case generateProcessorsUpdateCmd.Name():
		_ = generateProcessorsUpdateCmd.Parse(os.Args[2:])
		argument, err := generateProcessorsGoGetArgument(commandsArgs.version)
		if err != nil {
			fmt.Println(err)
		} else {
			fmt.Println(argument)
		}
	case getUnregisteredVersionsCmd.Name():
		_ = getUnregisteredVersionsCmd.Parse(os.Args[2:])
		releases, err := getUnregisteredVersions(commandsArgs.unregisteredVersionsCount)
		if err != nil {
			fmt.Println(err)
		} else {
			fmt.Println(releases)
		}
	case validateRegisteredVersionsCmd.Name():
		err = validateWebAssemblyVersions()
		if err != nil {
			fmt.Println(err.Error())
			os.Exit(1)
		}
	default:
		flag.PrintDefaults()
		os.Exit(1)
	}
}