mirror of
https://github.com/rwinkhart/MUTN.git
synced 2026-08-27 20:36:29 -04:00
Implement error-specific exit codes defined by libmutton
This commit is contained in:
@@ -27,8 +27,8 @@ After installing, please review the [usage guide](https://github.com/rwinkhart/M
|
||||
- [ ] libmutton v0.2.1
|
||||
- [ ] Only run getSSHClient once to prevent being asked for keyfile password multiple times
|
||||
- [ ] Ensure all config files and entry files are created with 0600 permissions
|
||||
- [ ] Add fail-specific error codes
|
||||
- [ ] Document in man page
|
||||
- [x] Add fail-specific error codes
|
||||
- [x] Document in man page
|
||||
- [x] Split into separate repos
|
||||
1. libmutton: backend package (rename to core), sync package, libmuttonserver
|
||||
3. MUTN: cli package
|
||||
|
||||
@@ -144,8 +144,30 @@ Once this has been done, you may proceed with the client setup:
|
||||
|
||||
...and then restart your shell.
|
||||
|
||||
.SH EXIT CODES
|
||||
TBD
|
||||
.SH EXIT CODES (defined by libmutton)
|
||||
0: no error
|
||||
|
||||
101: read error
|
||||
|
||||
102: write error
|
||||
|
||||
103: sync process error
|
||||
|
||||
104: server connection error
|
||||
|
||||
105: target not found
|
||||
|
||||
106: target already exists
|
||||
|
||||
107: target wrong type (file/directory)
|
||||
|
||||
108: decryption error
|
||||
|
||||
109: encryption error
|
||||
|
||||
110: clipboard error
|
||||
|
||||
111: other error
|
||||
|
||||
.SH AUTHOR
|
||||
Randall Winkhart (https://github.com/rwinkhart)
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ func AddEntry(targetLocation string, hideSecrets bool, entryType uint8) {
|
||||
_, isAccessible := core.TargetIsFile(targetLocation, false, 0)
|
||||
if isAccessible {
|
||||
fmt.Println(core.AnsiError + "Target location already exists" + core.AnsiReset)
|
||||
os.Exit(1)
|
||||
os.Exit(106)
|
||||
}
|
||||
|
||||
// ensure target containing directory exists and is a directory (not a file)
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ func EditEntryField(targetLocation string, hideSecrets bool, field int) {
|
||||
editedNote, noteEdited := editNote(noteData)
|
||||
if !noteEdited { // exit early if the note was not edited
|
||||
fmt.Println(core.AnsiError + "Entry is unchanged" + core.AnsiReset)
|
||||
os.Exit(1)
|
||||
os.Exit(0)
|
||||
}
|
||||
unencryptedEntry = append(nonNoteData, editedNote...)
|
||||
}
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ func TempInitCli() {
|
||||
gpgIDInt := inputMenuGen("Select GPG key:", uidSlice)
|
||||
if gpgIDInt == 0 {
|
||||
fmt.Println(core.AnsiError + "No GPG keys found - please generate one" + core.AnsiReset)
|
||||
os.Exit(1)
|
||||
os.Exit(105)
|
||||
}
|
||||
gpgID = uidSlice[gpgIDInt-1]
|
||||
}
|
||||
@@ -47,7 +47,7 @@ func TempInitCli() {
|
||||
sshKey = cmp.Or(expandPathWithHome(input("SSH private identity file path (falls back to \""+fallbackSSHKey+"\"):")), fallbackSSHKey)
|
||||
sshKeyIsFile, _ = core.TargetIsFile(sshKey, false, 0)
|
||||
if !sshKeyIsFile {
|
||||
fmt.Println(core.AnsiError + "SSH identity file not found: " + sshKey + core.AnsiReset)
|
||||
fmt.Println(core.AnsiError+"SSH identity file not found:", sshKey+core.AnsiReset)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ func writeEntryCLI(targetLocation string, unencryptedEntry []string, hideSecrets
|
||||
EntryReader(unencryptedEntry, hideSecrets, true)
|
||||
} else {
|
||||
fmt.Println(core.AnsiError + "No data supplied for entry" + core.AnsiReset)
|
||||
os.Exit(1)
|
||||
os.Exit(105)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user