From 49750f5fb56b94ce0ee7a86b833aa7abf6db66ae Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 18 Oct 2024 22:30:10 +0300 Subject: can edit files when they are too large --- internal/entry/entry.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'internal/entry') diff --git a/internal/entry/entry.go b/internal/entry/entry.go index 9f1eadf..475c315 100644 --- a/internal/entry/entry.go +++ b/internal/entry/entry.go @@ -78,18 +78,26 @@ func New(filePath string) (Entry, error) { func (e Entry) Content() (string, error) { bytes, err := os.ReadFile(e.Path) - return string(bytes), err + if err != err { + return "", err + } + return strings.TrimSpace(string(bytes)), nil } -// TODO: Optionally open editor when a content is too large. func (e Entry) ContentWithLimit(sizeLimit int) (string, error) { content, err := e.Content() if err != nil { return "", err } if len(content) > sizeLimit { - return "", fmt.Errorf("entry content exceeds size limit: %d > %d: %v", - len(content), sizeLimit, e) + err := fmt.Errorf("entry content exceeds size limit: %d > %d: %v", len(content), sizeLimit, e) + if err2 := prompt.Acknowledge("You need to shorten the content as "+err.Error(), content); err2 != nil { + return "", errors.Join(err, err2) + } + if err2 := e.Edit(); err2 != nil { + return "", errors.Join(err, err2) + } + return e.ContentWithLimit(sizeLimit) } return content, nil } -- cgit v1.2.3