o it just werks that is sus

main
Bel LaPointe 2023-10-25 06:09:59 -06:00
parent e7a1626bba
commit 6f6e4e23fe
1 changed files with 31 additions and 3 deletions

View File

@ -4,6 +4,7 @@ import (
"fmt" "fmt"
"io" "io"
"os" "os"
"unicode"
) )
var filesAppendDelim = "\t" var filesAppendDelim = "\t"
@ -44,16 +45,43 @@ func (files Files) append(s string) error {
} }
func (files Files) trimTrainlingWhitespace() error { func (files Files) trimTrainlingWhitespace() error {
f, err := os.Open(string(files[0])) idx, err := files._lastNonWhitespacePos()
if os.IsNotExist(err) { if err != nil {
return err
}
if idx < 1 {
return nil return nil
} }
f, err := os.OpenFile(string(files[0]), os.O_CREATE|os.O_WRONLY, os.ModePerm)
if err != nil { if err != nil {
return err return err
} }
defer f.Close() defer f.Close()
return io.EOF return f.Truncate(int64(idx + 1))
}
func (files Files) _lastNonWhitespacePos() (int, error) {
f, err := os.Open(string(files[0]))
if os.IsNotExist(err) {
return -1, nil
}
if err != nil {
return -1, err
}
defer f.Close()
b, err := io.ReadAll(f)
if err != nil {
return -1, err
}
for i := len(b) - 1; i >= 0; i-- {
if !unicode.IsSpace(rune(b[i])) {
return i, nil
}
}
return len(b) - 1, nil
} }
func (files Files) Deltas(like ...Like) (Deltas, error) { func (files Files) Deltas(like ...Like) (Deltas, error) {