Compare commits

...

2 commits
v1.0.0 ... main

Author SHA1 Message Date
f0873e78d6
commit 2025-05-19 18:54:24 -04:00
2723480488
commit 2025-05-16 18:37:56 +00:00
2 changed files with 47 additions and 1 deletions

View file

@ -74,7 +74,7 @@ sudo install -Dm755 logdebarker /usr/local/bin/logdebarker
OR
`go install archuser.org/logdebarker`
`go install archuser.org/logdebarker@latest`
## Final notes

46
main.go
View file

@ -49,6 +49,11 @@ func loadBlockedWords(path string) {
redaction = strings.TrimSpace(strings.TrimPrefix(line, "redaction:"))
continue
}
if strings.HasPrefix(line, "import:") {
dirPath := strings.TrimSpace(strings.TrimPrefix(line, "import:"))
expandAndImportDir(dirPath)
continue
}
blockedWords = append(blockedWords, regexp.MustCompile(regexp.QuoteMeta(line)))
}
if err := scanner.Err(); err != nil {
@ -56,6 +61,39 @@ func loadBlockedWords(path string) {
}
}
func expandAndImportDir(dir string) {
expandedPath := os.ExpandEnv(strings.ReplaceAll(dir, "~", getHomeDir()))
err := filepath.Walk(expandedPath, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() {
importWordsFromFile(path)
}
return nil
})
if err != nil {
log.Printf("Warning: Failed to walk directory %s: %v", dir, err)
}
}
func importWordsFromFile(path string) {
file, err := os.Open(path)
if err != nil {
log.Printf("Warning: Cannot open import file %s: %v", path, err)
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
line := strings.TrimSpace(scanner.Text())
if line != "" && !strings.HasPrefix(line, "#") {
blockedWords = append(blockedWords, regexp.MustCompile(regexp.QuoteMeta(line)))
}
}
}
func censorLine(line string) string {
for _, re := range blockedWords {
line = re.ReplaceAllString(line, redaction)
@ -130,3 +168,11 @@ func isInputFromTerminal() bool {
return (fileInfo.Mode() & os.ModeCharDevice) != 0
}
func getHomeDir() string {
usr, err := user.Current()
if err != nil {
log.Fatalf("Unable to determine home directory: %v", err)
}
return usr.HomeDir
}