From 81ec8b9a10a05a904f92e4ea9c1d5362736c9c76 Mon Sep 17 00:00:00 2001 From: crschnick Date: Mon, 25 May 2026 09:33:21 +0000 Subject: [PATCH] Fix pubkey exception for dotfiles --- .../main/java/io/xpipe/app/cred/SshIdentityStrategy.java | 2 +- core/src/main/java/io/xpipe/core/FilePath.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/xpipe/app/cred/SshIdentityStrategy.java b/app/src/main/java/io/xpipe/app/cred/SshIdentityStrategy.java index f32d79174..d4ed79b80 100644 --- a/app/src/main/java/io/xpipe/app/cred/SshIdentityStrategy.java +++ b/app/src/main/java/io/xpipe/app/cred/SshIdentityStrategy.java @@ -61,7 +61,7 @@ public interface SshIdentityStrategy { } static FilePath getPublicKeyPath(FilePath file) { - if (file.getExtension().isEmpty()) { + if (file.getExtension().isEmpty() || file.isDotFile()) { return FilePath.of(file + ".pub"); } else { return FilePath.of(file.getBaseName() + ".pub"); diff --git a/core/src/main/java/io/xpipe/core/FilePath.java b/core/src/main/java/io/xpipe/core/FilePath.java index 1b5e6b08a..a05101a52 100644 --- a/core/src/main/java/io/xpipe/core/FilePath.java +++ b/core/src/main/java/io/xpipe/core/FilePath.java @@ -117,6 +117,12 @@ public final class FilePath { return components.getLast(); } + public boolean isDotFile() { + var name = getFileName(); + var lastDot = name.lastIndexOf("."); + return lastDot == 0; + } + public FilePath getBaseName() { var name = getFileName(); var lastDot = name.lastIndexOf(".");