diff --git a/cmd/portwarden/portwarden.go b/cmd/portwarden/portwarden.go index 39c1a0a..9b339ce 100644 --- a/cmd/portwarden/portwarden.go +++ b/cmd/portwarden/portwarden.go @@ -29,6 +29,7 @@ var ( passphrase string filename string sleepMilliseconds int + noLogout bool ) func main() { @@ -51,6 +52,11 @@ func main() { Destination: &sleepMilliseconds, Value: 300, }, + cli.BoolFlag{ + Name: "no-logout", + Usage: "If set to true, then Portwarden won't log you out of the Bitwarden CLI", + Destination: &noLogout, + }, } app.Commands = []cli.Command{ @@ -108,7 +114,7 @@ func EncryptBackupController(fileName, passphrase string) error { if err != nil { return err } - return portwarden.CreateBackupFile(fileName, passphrase, sessionKey, sleepMilliseconds) + return portwarden.CreateBackupFile(fileName, passphrase, sessionKey, sleepMilliseconds, noLogout) } func DecryptBackupController(fileName, passphrase string) error { diff --git a/core.go b/core.go index ad54b9b..f042e78 100644 --- a/core.go +++ b/core.go @@ -62,8 +62,11 @@ func CreateBackupBytesUsingBitwardenLocalJSON(dataJson []byte, BITWARDENCLI_APPD return CreateBackupBytes(passphrase, sessionKey, sleepMilliseconds) } -func CreateBackupFile(fileName, passphrase, sessionKey string, sleepMilliseconds int) error { - defer BWLogout() +func CreateBackupFile(fileName, passphrase, sessionKey string, sleepMilliseconds int, noLogout bool) error { + if !noLogout { + fmt.Println("true") + defer BWLogout() + } if !strings.HasSuffix(fileName, ".portwarden") { fileName += ".portwarden" }