From a938f23a810514f2ddbb5b0fe335ae9543ffe0f5 Mon Sep 17 00:00:00 2001 From: crschnick Date: Wed, 16 Aug 2023 16:49:11 +0000 Subject: [PATCH] Various fixes --- .../resources/lang/preferences_en.properties | 2 +- build.gradle | 1 + .../io/xpipe/core/process/ShellDialect.java | 2 ++ .../core/store/ConnectionFileSystem.java | 17 ++++++++++--- dist/changelogs/1.5.2.md | 25 +++++++++++++++++++ get-xpipe.ps1 | 10 +++++++- get-xpipe.sh | 15 ++++++++--- 7 files changed, 62 insertions(+), 10 deletions(-) create mode 100644 dist/changelogs/1.5.2.md diff --git a/app/src/main/resources/io/xpipe/app/resources/lang/preferences_en.properties b/app/src/main/resources/io/xpipe/app/resources/lang/preferences_en.properties index 04830884d..a2d4dce92 100644 --- a/app/src/main/resources/io/xpipe/app/resources/lang/preferences_en.properties +++ b/app/src/main/resources/io/xpipe/app/resources/lang/preferences_en.properties @@ -59,7 +59,7 @@ automaticallyUpdateDescription=When enabled, new release information is automati sendAnonymousErrorReports=Send anonymous error reports sendUsageStatistics=Send anonymous usage statistics storageDirectory=Storage directory -storageDirectoryDescription=The location where XPipe should store all connection information. This setting will only be applied at the next restart. When changing this, the data in the old directory is not copied to the new one. +storageDirectoryDescription=The location where XPipe should store all connection information. This setting will only be applied at the next restart. When changing this, the data in the old directory is not copied to the new one.\n\nIf you want to sync your configuration across multiple systems, you can set this directory to be located in a cloud drive. logLevel=Log level appBehaviour=Application behaviour logLevelDescription=The log level that should be used when writing log files. diff --git a/build.gradle b/build.gradle index aa73f9188..904ea3c21 100644 --- a/build.gradle +++ b/build.gradle @@ -34,4 +34,5 @@ project.ext { canonicalVersionString = file('version').text buildId = UUID.nameUUIDFromBytes(versionString.getBytes()) obfuscate = true + changelog = file("dist/changelogs/${version}.md").exists() ? file("dist/changelogs/${version}.md").text.trim() + '\n' : "" } diff --git a/core/src/main/java/io/xpipe/core/process/ShellDialect.java b/core/src/main/java/io/xpipe/core/process/ShellDialect.java index e23436815..879b1d49c 100644 --- a/core/src/main/java/io/xpipe/core/process/ShellDialect.java +++ b/core/src/main/java/io/xpipe/core/process/ShellDialect.java @@ -161,6 +161,8 @@ public interface ShellDialect { CommandControl deleteFileOrDirectory(ShellControl sc, String file); + String clearDisplayCommand(); + CommandControl createFileExistsCommand(ShellControl sc, String file); CommandControl symbolicLink(ShellControl sc, String linkFile, String targetFile); diff --git a/core/src/main/java/io/xpipe/core/store/ConnectionFileSystem.java b/core/src/main/java/io/xpipe/core/store/ConnectionFileSystem.java index 41999a684..c32c1058b 100644 --- a/core/src/main/java/io/xpipe/core/store/ConnectionFileSystem.java +++ b/core/src/main/java/io/xpipe/core/store/ConnectionFileSystem.java @@ -92,7 +92,9 @@ public class ConnectionFileSystem implements FileSystem { @Override public void delete(String file) throws Exception { - try (var pc = shellControl.getShellDialect().deleteFileOrDirectory(shellControl, file) + try (var pc = shellControl + .getShellDialect() + .deleteFileOrDirectory(shellControl, file) .start()) { pc.discardOrThrow(); } @@ -139,14 +141,21 @@ public class ConnectionFileSystem implements FileSystem { @Override public void symbolicLink(String linkFile, String targetFile) throws Exception { - try (var pc = shellControl.getShellDialect().symbolicLink(shellControl,linkFile, targetFile) + try (var pc = shellControl + .getShellDialect() + .symbolicLink(shellControl, linkFile, targetFile) .start()) { pc.discardOrThrow(); } } @Override - public void close() throws IOException { - shellControl.close(); + public void close() { + // In case the shell control is already in an invalid state, this operation might fail + // Since we are only closing, just swallow all exceptions + try { + shellControl.close(); + } catch (IOException ignored) { + } } } diff --git a/dist/changelogs/1.5.2.md b/dist/changelogs/1.5.2.md new file mode 100644 index 000000000..02afb1d15 --- /dev/null +++ b/dist/changelogs/1.5.2.md @@ -0,0 +1,25 @@ +## Changes in 1.5.2 + +- Make automatic connection search dialog accessible from a separate button +- Add filter bar to connection chooser +- Add Kubernetes describe action for pods +- Fix Kubernetes functionality breaking when a pot contain multiple containers +- Use Kubernetes context names instead of cluster names to access resources +- Fix automatic ssh host key acceptance not working +- Fix paste not working in file browser +- Rework dynamic script generation to apply some properties after init scripts +- Many other small miscellaneous fixes and improvements + +## Changes in 1.5.1 + +- Add ARM build for Linux to available releases +- Add ability to sort connections by name and last access date +- Add ability to automatically accept new ssh host key when required +- Improve performance when adding are removing connections +- Look in PATH for terminals on windows +- Fix CLI error messages not being able to be parsed +- Many other small miscellaneous fixes and improvements + +## Changes in 1.5.0 + +https://github.com/xpipe-io/xpipe/releases/tag/1.5.0 is the largest update yet and comes with loads of improvements and changes, some of which might require you to update some connection configurations. There might be some rough edges, but these will be quickly ironed out. So please report any issues you can find! diff --git a/get-xpipe.ps1 b/get-xpipe.ps1 index 38900612a..cc7d5cd96 100644 --- a/get-xpipe.ps1 +++ b/get-xpipe.ps1 @@ -175,7 +175,15 @@ $env:Path=( [System.Environment]::GetEnvironmentVariable("Path", "User") ) -match '.' -join ';' +Write-Host +Write-Host 'XPipe has been successfully installed. You should be able to find it in your applications. The ' -NoNewline +Write-Host -ForegroundColor Green 'xpipe' -NoNewline +Write-Host ' cli executable was also added to your PATH. You can use ' -NoNewline +Write-Host -ForegroundColor Green 'xpipe --help' -NoNewline +Write-Host ' for help.' +Write-Host + # Use absolute path as we can't assume that the user has selected to put XPipe into the Path -& "$env:LOCALAPPDATA\XPipe\app\xpiped.exe" +& "$env:LOCALAPPDATA\XPipe\cli\bin\xpipe.exe" open #endregion Install XPipe diff --git a/get-xpipe.sh b/get-xpipe.sh index 977ea49e3..37d3a460a 100755 --- a/get-xpipe.sh +++ b/get-xpipe.sh @@ -171,9 +171,7 @@ check_architecture() { return 0 ;; arm64) - if [ "$(uname -s)" = "Darwin" ]; then - return 0 - fi + return 0 ;; esac @@ -237,4 +235,13 @@ fi uninstall install "$download_archive" -launch + +printf "XPipe was successfully installed. You should be able to find XPipe in your desktop environment now. The " +bold "xpipe" +printf " cli executable was also added to your path. You can ether use " +bold "man xpipe" +printf " or " +bold "xpipe --help" +printf " for help.\n" + +launch \ No newline at end of file