From 4844620ed13c0a4416e06216a80457b6eba428ed Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Wed, 5 Jun 2024 18:19:01 -0400 Subject: [PATCH] Improve error clarity in cli.editNote --- src/backend/configParser.go | 4 ++-- src/cli/edit.go | 14 +++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/backend/configParser.go b/src/backend/configParser.go index 4713c20..5e98467 100644 --- a/src/backend/configParser.go +++ b/src/backend/configParser.go @@ -88,13 +88,13 @@ func WriteConfig(configFileMap map[string]string, append bool) { // libmutton.ini layout // [LIBMUTTON] // gpgID = -// textEditor = +// textEditor = TODO move to MUTN section heading, as it only applies to the CLI implementation // sshUser = // sshIP = // sshPort = // sshKey = // sshKeyProtected = -// netPinEnabled = +// netPinEnabled = TODO netPin functionality not yet implemented // sshEntryRoot = // sshIsWindows = diff --git a/src/cli/edit.go b/src/cli/edit.go index 326bd85..583f967 100644 --- a/src/cli/edit.go +++ b/src/cli/edit.go @@ -71,7 +71,11 @@ func GenUpdate(targetLocation string, hideSecrets bool) { // returns the edited note and a boolean indicating whether the note was edited func editNote(baseNote []string) ([]string, bool) { tempFile := backend.CreateTempFile() - defer os.Remove(tempFile.Name()) + defer func(name string) { + _ = os.Remove(name) // error ignored; if the file could be created, it can probably be removed + }(tempFile.Name()) + + // fetch the user's text editor editor := backend.ParseConfig([]string{"textEditor"}, "")[0] // write baseNote to tempFile (if it is not empty) @@ -81,8 +85,8 @@ func editNote(baseNote []string) ([]string, bool) { } } - // close tempFile - tempFile.Close() + // close tempFile to allow it to be modified by the user's text editor + _ = tempFile.Close() // error ignored; if the file could be created, it can probably be closed // edit the tempFile (note) with the user's text editor cmd := exec.Command(editor, tempFile.Name()) @@ -97,7 +101,7 @@ func editNote(baseNote []string) ([]string, bool) { // open the tempFile for reading tempFile, err = os.Open(tempFile.Name()) if err != nil { - panic(backend.AnsiError + "Failed to write note with " + editor + backend.AnsiReset) // panic is used to ensure the tempFile is removed, as per the defer statement + panic(backend.AnsiError + "Failed to read note written with " + editor + backend.AnsiReset) // panic is used to ensure the tempFile is removed, as per the defer statement } // read the edited note from the tempFile @@ -108,7 +112,7 @@ func editNote(baseNote []string) ([]string, bool) { } // close tempFile - tempFile.Close() + _ = tempFile.Close() // error ignored; if the file could be opened, it can probably be closed // remove trailing empty strings from the edited note note = backend.RemoveTrailingEmptyStrings(note)