func main()

in nimo-full-check/main/main.go [20:55]


func main() {
	defer LOG.Close()

	// parse conf.Opts
	args, err := flags.Parse(&conf.Opts)

	if conf.Opts.Version {
		fmt.Println(utils.Version)
		os.Exit(0)
	}

	// 若err != nil, 会自动打印错误到 stderr
	if err != nil {
		if flagsErr, ok := err.(*flags.Error); ok && flagsErr.Type == flags.ErrHelp {
			os.Exit(0)
		} else {
			fmt.Fprintf(os.Stderr, "flag err %s\n", flagsErr)
			os.Exit(1)
		}
	}

	if len(args) != 0 {
		fmt.Fprintf(os.Stderr, "unexpected args %+v", args)
		os.Exit(1)
	}

	shakeUtils.InitialLogger("", conf.Opts.LogLevel, false)

	if err := sanitizeOptions(); err != nil {
		crash(fmt.Sprintf("Conf.Options check failed: %s", err.Error()), -4)
	}

	LOG.Info("full-check starts")
	run.Start()
	LOG.Info("full-check completes!")
}