in main.go [112:154]
func (o *Options) LoadConfigurationFile() error {
configPaths := []string{
"{CONFIG}/kubectl-ai/config.yaml",
"{HOME}/.config/kubectl-ai/config.yaml",
}
for _, configPath := range configPaths {
// Try to load configuration
tokens := strings.Split(configPath, "/")
for i, token := range tokens {
if token == "{CONFIG}" {
configDir, err := os.UserConfigDir()
if err != nil {
return fmt.Errorf("getting user config directory: %w", err)
}
tokens[i] = configDir
}
if token == "{HOME}" {
homeDir, err := os.UserHomeDir()
if err != nil {
return fmt.Errorf("getting user home directory: %w", err)
}
tokens[i] = homeDir
}
}
configPath = filepath.Join(tokens...)
configBytes, err := os.ReadFile(configPath)
if err != nil {
if os.IsNotExist(err) {
// ignore
} else {
fmt.Fprintf(os.Stderr, "warning: could not load defaults from %q: %v\n", configPath, err)
}
}
if len(configBytes) > 0 {
if err := o.LoadConfiguration(configBytes); err != nil {
fmt.Fprintf(os.Stderr, "warning: error loading configuration from %q: %v\n", configPath, err)
}
}
}
return nil
}