41 lines
972 B
Go
41 lines
972 B
Go
// 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)
|
|
}
|
|
defer f.Close()
|
|
if _, err = f.WriteString(sb.String()); err != nil {
|
|
return fmt.Errorf("write log: %w", err)
|
|
}
|
|
return nil
|
|
}
|