func stop(log logger.T, cpm *coremanager.CoreManager) { log.Info("Stopping agent") log.Flush() cpm.Stop() log.Info("Bye.") log.Flush() }
func start(log logger.T, instanceIDPtr *string, regionPtr *string) (cpm *coremanager.CoreManager, err error) { log.Infof("Starting Agent: %v", version.String()) log.Infof("OS: %s, Arch: %s", runtime.GOOS, runtime.GOARCH) log.Flush() if cpm, err = coremanager.NewCoreManager(instanceIDPtr, regionPtr, log); err != nil { log.Errorf("error occured when starting core manager: %v", err) return } cpm.Start() return }
// 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) } }