MCPcopy Create free account
hub / github.com/OverloadBlitz/cloudcent-cli / Load

Function Load

internal/config/config.go:42–65  ·  view source on GitHub ↗

Load reads ~/.cloudcent/config.yaml. Returns nil, nil if missing. If the CLOUDCENT_API_KEY environment variable is set, it takes precedence over the config file (useful for CI environments).

()

Source from the content-addressed store, hash-verified

40// If the CLOUDCENT_API_KEY environment variable is set, it takes precedence
41// over the config file (useful for CI environments).
42func Load() (*Config, error) {
43 // Environment variable takes precedence — no file needed in CI.
44 if apiKey := os.Getenv("CLOUDCENT_API_KEY"); apiKey != "" {
45 cliID := os.Getenv("CLOUDCENT_CLI_ID") // optional
46 return &Config{CliID: cliID, APIKey: &apiKey}, nil
47 }
48
49 p, err := Path()
50 if err != nil {
51 return nil, err
52 }
53 data, err := os.ReadFile(p)
54 if os.IsNotExist(err) {
55 return nil, nil
56 }
57 if err != nil {
58 return nil, fmt.Errorf("failed to read config file: %w", err)
59 }
60 var cfg Config
61 if err := yaml.Unmarshal(data, &cfg); err != nil {
62 return nil, fmt.Errorf("failed to parse config YAML: %w", err)
63 }
64 return &cfg, nil
65}
66
67// Save writes config to ~/.cloudcent/config.yaml with 0600 permissions.
68func Save(cfg *Config) error {

Callers 3

NewFunction · 0.92
ReloadConfigMethod · 0.92
runConfigFunction · 0.92

Calls 1

PathFunction · 0.85

Tested by

no test coverage detected