MCPcopy Create free account
hub / github.com/basecamp/hey-cli / Load

Function Load

internal/config/config.go:115–145  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

113}
114
115func Load() (*Config, error) {
116 cfg := &Config{
117 BaseURL: defaultBase,
118 sources: map[string]Source{"base_url": SourceDefault},
119 }
120
121 // Layer 1: global config
122 if err := cfg.loadFile(globalConfigPath(), SourceGlobal); err != nil {
123 return nil, err
124 }
125
126 // Layer 2: local config (.hey/config.json walking up)
127 if local := localConfigPath(); local != "" {
128 if err := cfg.loadFile(local, SourceLocal); err != nil {
129 return nil, err
130 }
131 }
132
133 // Layer 3: environment variables
134 if env := os.Getenv("HEY_BASE_URL"); env != "" {
135 cfg.BaseURL = env
136 cfg.sources["base_url"] = SourceEnv
137 }
138
139 // Validate base URL
140 if err := validateBaseURL(cfg.BaseURL); err != nil {
141 return nil, err
142 }
143
144 return cfg, nil
145}
146
147func (c *Config) loadFile(path string, source Source) error {
148 if path == "" {

Callers 6

newRootCmdFunction · 0.92
TestDefaultConfigFunction · 0.85
TestGlobalConfigOverrideFunction · 0.85
TestEnvOverrideFunction · 0.85
TestFlagOverrideFunction · 0.85
TestSourceTrackingFunction · 0.85

Calls 4

loadFileMethod · 0.95
globalConfigPathFunction · 0.85
localConfigPathFunction · 0.85
validateBaseURLFunction · 0.85

Tested by 5

TestDefaultConfigFunction · 0.68
TestGlobalConfigOverrideFunction · 0.68
TestEnvOverrideFunction · 0.68
TestFlagOverrideFunction · 0.68
TestSourceTrackingFunction · 0.68