package app import "gitea.maximumdirect.net/eric/distributor/internal/config" type runtimeSetup struct { ConfigPath string Config config.Config Environment config.Environment Warnings []OutputWarning } func loadRuntimeSetup(configPath string) (runtimeSetup, error) { resolvedPath := runtimeConfigPath(configPath) cfg, err := config.LoadFile(resolvedPath) if err != nil { return runtimeSetup{}, err } return runtimeSetupFromConfig(resolvedPath, cfg) } func runtimeSetupFromConfig(configPath string, cfg config.Config) (runtimeSetup, error) { secretLoad, err := config.LoadSecretEnvironment(cfg.Secrets.Directory, nil) if err != nil { return runtimeSetup{}, err } return runtimeSetup{ ConfigPath: configPath, Config: cfg, Environment: secretLoad.Environment, Warnings: secretConflictWarnings(secretLoad.Conflicts), }, nil } func runtimeConfigPath(configPath string) string { if configPath == "" { return config.DefaultConfigPath } return configPath } func (setup runtimeSetup) withPipelines(pipelines []config.Pipeline) runtimeSetup { setup.Config.Pipelines = pipelines return setup }