func runRootCommand()

in rootcmd.go [535:650]


func runRootCommand(ctx *cli.Context, args []string) error {
	options := parseOptions(ctx)
	log.InitLog("aliyun_assist_main.log", options.LogPath, false)
	// Redirect logging messages from kubernetes CRI client via klog to logrus
	// used by ourselves
	klog.SetLogger(logrusr.New(log.GetLogger()).WithName("klog"))

	if options.LogPath != "" {
		pathutil.SetScriptPath(options.LogPath)
	}
	e := PatchGolang()
	if e != nil {
		log.GetLogger().Fatal("PatchGolang failed :", e.Error())
	}

	if options.IsVerbose {
		util.SetVerboseMode(true)
	}

	if options.GetHelp {
		// aliyun-cli/cli library handles "help" flag internally, and here needs
		// to do nothing.
		return nil
	}
	if options.GetVersion {
		fmt.Println(version.AssistVersion)
		return nil
	}
	if options.GetGitHash {
		fmt.Println(version.GitCommitHash)
		return nil
	}
	if options.Register {
		tags := []hybrid.Tag{}
		for _, tag := range options.Tags {
			words := strings.Split(tag, "=")
			if len(words) != 2 {
				fmt.Println("Invalid tag: ", tag)
				cli.Exit(1)
			}
			tags = append(tags, hybrid.Tag{
				Key:   words[0],
				Value: words[1],
			})
		}
		if !hybrid.Register(options.Region, options.ActivationCode, options.ActivationId, options.InstanceName, options.NetWorkMode, true, tags) {
			cli.Exit(1)
		}
		return nil
	}
	if options.DeRegister {
		if !hybrid.UnRegister(true) {
			cli.Exit(1)
		}
		return nil
	}

	if options.RunAsDaemon {
		// TODO: Check other options like --install, --remove, --start, --stop should not be passed
		if err := daemon.Daemonize(); err != nil {
			fmt.Fprintln(os.Stderr, "Failed to start aliyun-service as daemon:", err)
			cli.Exit(1)
		}
		return nil
	}

	svcConfig := install.ServiceConfig()
	prg := &program{}
	s, err := service.New(prg, svcConfig)
	if err != nil {
		return fmt.Errorf("new service error %w", err)
	}

	if options.Stop {
		if err := s.Stop(); err != nil {
			return fmt.Errorf("stop assist failed: %w", err)
		} else {
			fmt.Println("stop assist ok")
			return nil
		}
	}

	if options.Remove {
		if err := s.Uninstall(); err != nil {
			return fmt.Errorf("uninstall assist failed: %w", err)
		} else {
			fmt.Println("uninstall assist ok")
			return nil
		}
	}

	if options.Install {
		if err := s.Install(); err != nil {
			return fmt.Errorf("install assist failed: %w", err)
		} else {
			fmt.Println("install assist ok")
			return nil
		}
	}

	if options.Start {
		if err := s.Start(); err != nil {
			return fmt.Errorf("start assist failed: %w", err)
		} else {
			fmt.Println("start assist ok")
			return nil
		}
	}

	err = s.Run()
	if err != nil {
		log.GetLogger().Println(err.Error())
		return err
	}
	return nil
}