package taskwarrior import ( "fmt" "log/slog" "strings" ) type TWConfig struct { config map[string]string } func NewConfig(config []string) *TWConfig { return &TWConfig{ config: parseConfig(config), } } func (tc *TWConfig) GetConfig() map[string]string { return tc.config } func (tc *TWConfig) Get(key string) string { if _, ok := tc.config[key]; !ok { slog.Debug(fmt.Sprintf("Key not found in config: %s", key)) return "" } return tc.config[key] } func parseConfig(config []string) map[string]string { configMap := make(map[string]string) for _, line := range config { parts := strings.SplitN(line, "=", 2) if len(parts) != 2 { continue } key := strings.TrimSpace(parts[0]) value := strings.TrimSpace(parts[1]) configMap[key] = value } return configMap }