in cmd/fleet/main.go [62:137]
func getRunCommand(bi build.Info) func(cmd *cobra.Command, args []string) error {
return func(cmd *cobra.Command, args []string) error {
cfgObject := cmd.Flags().Lookup("E").Value.(*config.Flag) //nolint:errcheck // we know the flag exists
cliCfg := cfgObject.Config()
agentMode, err := cmd.Flags().GetBool(kAgentMode)
if err != nil {
return err
}
var l *logger.Logger
if agentMode {
cfg, err := config.FromConfig(cliCfg)
if err != nil {
return err
}
l, err = initLogger(cfg, bi.Version, bi.Commit)
if err != nil {
return err
}
srv, err := server.NewAgent(cliCfg, os.Stdin, bi, l)
if err != nil {
return err
}
if err := srv.Run(installSignalHandler()); err != nil && !errors.Is(err, context.Canceled) {
log.Error().Err(err).Msg("Exiting")
l.Sync()
return err
}
} else {
cfgPath, err := cmd.Flags().GetString("config")
if err != nil {
return err
}
cfgData, err := yaml.NewConfigWithFile(cfgPath, config.DefaultOptions...)
if err != nil {
return err
}
err = cfgData.Merge(cliCfg, config.DefaultOptions...)
if err != nil {
return err
}
cfg, err := config.FromConfig(cfgData)
if err != nil {
return err
}
err = cfg.LoadStandaloneAgentMetadata()
if err != nil {
return err
}
l, err = initLogger(cfg, bi.Version, bi.Commit)
if err != nil {
return err
}
ctx := installSignalHandler()
srv, err := server.NewFleet(bi, state.NewLog(zerolog.Ctx(ctx)), true)
if err != nil {
return err
}
if err := srv.Run(ctx, cfg); err != nil && !errors.Is(err, context.Canceled) {
log.Error().Err(err).Msg("Exiting")
l.Sync()
return err
}
}
l.Sync()
return nil
}
}