// parseFlags displays flags and handles them func parseFlags(log logger.T) { flag.CommandLine = flag.NewFlagSet(os.Args[0], flag.ExitOnError) flag.Usage = flagUsage // instance id and region for overriding in dev test scenarios instanceIDPtr = flag.String("i", "", "instance id") regionPtr = flag.String("r", "", "instance region") // managed instance registration flag.BoolVar(®ister, registerFlag, false, "") flag.StringVar(&activationCode, activationCodeFlag, "", "") flag.StringVar(&activationID, activationIDFlag, "", "") flag.StringVar(®ion, regionFlag, "", "") // clear registration flag.BoolVar(&clear, "clear", false, "") // fingerprint similarity threshold flag.BoolVar(&fpFlag, fingerprintFlag, false, "") flag.IntVar(&similarityThreshold, similarityThresholdFlag, 40, "") // force flag flag.BoolVar(&force, "y", false, "") flag.Parse() if flag.NFlag() > 0 { exitCode := 1 if register { exitCode = processRegistration(log) } else if fpFlag { exitCode = processFingerprint(log) } else { flagUsage() } log.Flush() log.Close() os.Exit(exitCode) } }