From 148ee53073ccd64e8c40a3da61f2bb8e9a10a621 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Thu, 7 Mar 2024 20:35:24 -0500 Subject: [PATCH] Add TEMPORARY sshyp-sync shim so that MUTN can be tested while native sync is under development --- main.go | 7 ++++--- src/cli/entryReader.go | 11 ++++++++--- src/cli/utilitiesMisc.go | 10 +++++++++- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index d124993..83e8f2b 100644 --- a/main.go +++ b/main.go @@ -26,13 +26,13 @@ func main() { // entry reader shortcut (if no other arguments are supplied) if argsCount == 2 { - cli.EntryReaderShortcut(targetLocation, true) + cli.EntryReaderShortcut(targetLocation, true, false) // perform other operations on the entry (if other arguments are supplied) } else if argsCount == 3 { switch args[2] { case "show", "-s": - cli.EntryReaderShortcut(targetLocation, false) + cli.EntryReaderShortcut(targetLocation, false, false) case "shear": offline.Shear(targetLocation) case "gen": @@ -151,7 +151,8 @@ func main() { switch args[1] { case "clipclear": offline.ClipClearArgument() - case "sync": // TODO online.Sync(), exit after run + case "sync": + cli.SshypSync() // TODO Remove after native sync is implemented case "init": // TODO offline.Init(), exit after run case "tweak": // TODO offline.Tweak(), exit after run case "add": diff --git a/src/cli/entryReader.go b/src/cli/entryReader.go index e93419a..8eadcdb 100644 --- a/src/cli/entryReader.go +++ b/src/cli/entryReader.go @@ -9,7 +9,7 @@ import ( const ansiShownPassword = "\033[38;5;10m" // EntryReader prints the decrypted contents of a libmutton entry in a human-readable format -func EntryReader(decryptedEntry []string, hidePassword bool) { +func EntryReader(decryptedEntry []string, hidePassword bool, sync bool) { fmt.Println() // track if extended notes have been printed (to avoid printing an extra newline) @@ -67,13 +67,18 @@ func EntryReader(decryptedEntry []string, hidePassword bool) { if notesFlag { fmt.Println() } + + if sync { + SshypSync() // TODO Remove after native sync is implemented + } + os.Exit(0) } // EntryReaderShortcut is a shortcut for EntryReader that decrypts a GPG-encrypted file and prints the contents -func EntryReaderShortcut(targetLocation string, hidePassword bool) { +func EntryReaderShortcut(targetLocation string, hidePassword bool, sync bool) { if isFile, _ := offline.TargetIsFile(targetLocation, true, 2); isFile { - EntryReader(offline.DecryptGPG(targetLocation), hidePassword) + EntryReader(offline.DecryptGPG(targetLocation), hidePassword, sync) } // do not exit, as this is the job of EntryReader } diff --git a/src/cli/utilitiesMisc.go b/src/cli/utilitiesMisc.go index f56fb1d..3eb8c56 100644 --- a/src/cli/utilitiesMisc.go +++ b/src/cli/utilitiesMisc.go @@ -6,9 +6,17 @@ import ( "github.com/rwinkhart/MUTN/src/offline" "golang.org/x/crypto/ssh/terminal" "os" + "os/exec" "strings" ) +// TODO remove after native sync is implemented +func SshypSync() { + cmd := exec.Command("sshyp", "sync") + cmd.Stdout = os.Stdout + cmd.Run() +} + // input prompts the user for input and returns the input as a string func input(prompt string) string { fmt.Print("\n" + prompt + " ") @@ -56,7 +64,7 @@ func writeEntryShortcut(targetLocation string, unencryptedEntry []string, hidePa trimmedEntry := offline.RemoveTrailingEmptyStrings(unencryptedEntry) offline.WriteEntry(targetLocation, trimmedEntry) fmt.Println(ansiBold + "\nEntry Preview:" + offline.AnsiReset) - EntryReader(trimmedEntry, hidePassword) + EntryReader(trimmedEntry, hidePassword, true) } else { fmt.Println(offline.AnsiError + "No data supplied for entry" + offline.AnsiReset) os.Exit(1)