func startAgent()

in cmd/agent.go [41:91]


func startAgent(configPath string) {
	var cfg conf.Config
	var err error
	if configPath == "" {
		cfg = conf.DefaultConfig()
	} else {
		cfg, err = conf.LoadConfigFormFile(configPath)
		if err != nil {
			_, _ = fmt.Fprintf(os.Stderr, "failed to load config from file: %v\n", err)
			os.Exit(1)
		}
	}
	{
		b, _ := json.Marshal(cfg)
		_, _ = fmt.Fprintf(os.Stderr, "success load config: %s\n", string(b))
	}

	lw, err := logger.NewLogger(cfg.Log)
	if err != nil {
		_, _ = fmt.Fprintf(os.Stderr, "failed to initialize logger: %v\n", err)
		os.Exit(1)
	}

	cacheStore, err := cache.NewCacheStore(cfg.Cache)
	if err != nil {
		_, _ = fmt.Fprintf(os.Stderr, "failed to initialize cache store: %v\n", err)
		os.Exit(1)
	}

	kmsClient, err := kms.NewKeyManagementService(cfg.Kms)
	if err != nil {
		_, _ = fmt.Fprintf(os.Stderr, "failed to initialize kms: %v\n", err)
		os.Exit(1)
	}
	_, _ = fmt.Fprintf(os.Stdout, "initialize kms with crendentials: %v\n", kmsClient.GetCredentialType())

	err = kmsClient.SelfCheck()
	if err != nil {
		_, _ = fmt.Fprintf(os.Stderr, "kms self check failed: %v\n", err)
		os.Exit(1)
	}

	server, err := service.NewServer(cfg.Server, cacheStore, kmsClient, lw)
	if err != nil {
		_, _ = fmt.Fprintf(os.Stderr, "failed to initialize http server: %v\n", err)
		os.Exit(1)
	}

	// start server
	server.Serve()
}