This commit is contained in:
crschnick
2026-03-18 02:22:40 +00:00
parent d05992c862
commit b3621f7c22
2 changed files with 14 additions and 3 deletions
@@ -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");
+3
View File
@@ -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