// ingestion/internal/wiki/log.go package wiki import ( "fmt" "os" "path/filepath" "strings" ) // AppendLog appends one ingestion record to brain/log.md. func AppendLog(brainDir, source string, pages, warnings []string, date string) error { var sb strings.Builder fmt.Fprintf(&sb, "## %s — ingest\n\n", date) fmt.Fprintf(&sb, "- **Source:** %s\n", source) if len(pages) > 0 { sb.WriteString("- **Pages written:**\n") for _, p := range pages { fmt.Fprintf(&sb, " - %s\n", p) } } if len(warnings) > 0 { sb.WriteString("- **Warnings:**\n") for _, w := range warnings { fmt.Fprintf(&sb, " - %s\n", w) } } sb.WriteString("\n") logPath := filepath.Join(brainDir, "log.md") f, err := os.OpenFile(logPath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644) if err != nil { return fmt.Errorf("open log: %w", err) } if _, err = f.WriteString(sb.String()); err != nil { f.Close() //nolint:errcheck return fmt.Errorf("write log: %w", err) } return f.Close() }