From b3621f7c22d2b8a487a7e9545d02cd5d311099c2 Mon Sep 17 00:00:00 2001 From: crschnick Date: Wed, 18 Mar 2026 02:22:40 +0000 Subject: [PATCH] Rework --- .../io/xpipe/app/pwman/ProtonPasswordManager.java | 14 +++++++++++--- dist/changelog/22.0.md | 3 +++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/pwman/ProtonPasswordManager.java b/app/src/main/java/io/xpipe/app/pwman/ProtonPasswordManager.java index 887fa8781..2a127fc63 100644 --- a/app/src/main/java/io/xpipe/app/pwman/ProtonPasswordManager.java +++ b/app/src/main/java/io/xpipe/app/pwman/ProtonPasswordManager.java @@ -84,6 +84,15 @@ public class ProtonPasswordManager implements PasswordManager { return SHELL; } + private String runCommand(CommandBuilder b) throws Exception { + var r = getOrStartShell().command(b).sensitive().readStdoutAndStderr(); + // pass-cli does not set exit codes on failure + if (r[0].isEmpty() && !r[1].isEmpty()) { + throw ErrorEventFactory.expected(ProcessOutputException.of(1, r[1])); + } + return r[0]; + } + @Override public synchronized Result query(String key) { try { @@ -117,8 +126,7 @@ public class ProtonPasswordManager implements PasswordManager { var itemName = split.length > 1 ? split[1] : key; if (vault == null) { - var b = CommandBuilder.of().add("pass-cli", "vault", "list", "--output", "json"); - var out = sc.command(b).readStdoutOrThrow(); + var out = runCommand(CommandBuilder.of().add("pass-cli", "vault", "list", "--output", "json")); var json = JacksonMapper.getDefault().readTree(out); var vaultsNode = json.required("vaults"); if (vaultsNode == null || vaultsNode.size() == 0) { @@ -142,7 +150,7 @@ public class ProtonPasswordManager implements PasswordManager { } b.add("--item-title").addQuoted(itemName); b.add("--output", "json"); - var out = sc.command(b).readStdoutOrThrow(); + var out = runCommand(b); var json = JacksonMapper.getDefault().readTree(out); var itemNode = json.get("item"); diff --git a/dist/changelog/22.0.md b/dist/changelog/22.0.md index 5c9c4f00f..2e013f5a2 100644 --- a/dist/changelog/22.0.md +++ b/dist/changelog/22.0.md @@ -52,5 +52,8 @@ Furthermore, the container restart action will now properly restart any systemd - Add support for multiple 1password accounts - Add support for Bitwarden flatpak and macOS App Store installations - Add support for KeePassXC flatpak +- Add support for Proton Pass password manager +- Add support for hashicorp vault as password manager +- Improve timeout handling for shells to allow for a quicker shell init - Fix Keeper issues on macOS and add support for Keeper App Store installations - Fix SSH being broken when a custom alias to a modified ssh command was set in a shell rc file