From ec258a1eaaf244588fb51585ae89442bdc9c42dd Mon Sep 17 00:00:00 2001 From: crschnick Date: Thu, 29 Aug 2024 01:23:39 +0000 Subject: [PATCH] Fix for sh shells --- .../java/io/xpipe/app/prefs/SyncCategory.java | 20 ++++++++++++++++++- .../app/storage/DataStorageSyncHandler.java | 2 ++ .../io/xpipe/app/update/AppInstaller.java | 6 +++--- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/prefs/SyncCategory.java b/app/src/main/java/io/xpipe/app/prefs/SyncCategory.java index da3bf2c0f..9c62ecacb 100644 --- a/app/src/main/java/io/xpipe/app/prefs/SyncCategory.java +++ b/app/src/main/java/io/xpipe/app/prefs/SyncCategory.java @@ -3,9 +3,17 @@ package io.xpipe.app.prefs; import io.xpipe.app.comp.base.ButtonComp; import io.xpipe.app.core.AppI18n; import io.xpipe.app.fxcomps.Comp; +import io.xpipe.app.fxcomps.impl.StackComp; import io.xpipe.app.storage.DataStorage; +import io.xpipe.app.storage.DataStorageSyncHandler; import io.xpipe.app.util.DesktopHelper; import io.xpipe.app.util.OptionsBuilder; +import io.xpipe.app.util.ThreadHelper; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import org.kordamp.ikonli.javafx.FontIcon; + +import java.util.List; public class SyncCategory extends AppPrefsCategory { @@ -16,6 +24,14 @@ public class SyncCategory extends AppPrefsCategory { public Comp create() { var prefs = AppPrefs.get(); + var terminalTest = new StackComp( + List.of(new ButtonComp(AppI18n.observable("test"), new FontIcon("mdi2p-play"), () -> { + ThreadHelper.runAsync(() -> { + DataStorageSyncHandler.getInstance().validateConnection(); + }); + }).padding(new Insets(6, 10, 6, 6)))) + .padding(new Insets(10, 0, 0, 0)) + .apply(struc -> struc.get().setAlignment(Pos.CENTER_LEFT)); var builder = new OptionsBuilder(); builder.addTitle("sync") .sub(new OptionsBuilder() @@ -23,8 +39,10 @@ public class SyncCategory extends AppPrefsCategory { .description("enableGitStorageDescription") .addToggle(prefs.enableGitStorage) .nameAndDescription("storageGitRemote") - .addString(prefs.storageGitRemote, true) + .addString(prefs.storageGitRemote) .disable(prefs.enableGitStorage.not()) + .addComp(terminalTest) + .disable(prefs.storageGitRemote.isNull().and(prefs.enableGitStorage)) .addComp(prefs.getCustomComp("gitVaultIdentityStrategy")) .nameAndDescription("openDataDir") .addComp(new ButtonComp(AppI18n.observable("openDataDirButton"), () -> { diff --git a/app/src/main/java/io/xpipe/app/storage/DataStorageSyncHandler.java b/app/src/main/java/io/xpipe/app/storage/DataStorageSyncHandler.java index 5ea256481..bf8eaac58 100644 --- a/app/src/main/java/io/xpipe/app/storage/DataStorageSyncHandler.java +++ b/app/src/main/java/io/xpipe/app/storage/DataStorageSyncHandler.java @@ -10,6 +10,8 @@ public interface DataStorageSyncHandler { return (DataStorageSyncHandler) ProcessControlProvider.get().getGitStorageHandler(); } + void validateConnection(); + boolean supportsSync(); void init(); diff --git a/app/src/main/java/io/xpipe/app/update/AppInstaller.java b/app/src/main/java/io/xpipe/app/update/AppInstaller.java index 6e521cfab..ae8096400 100644 --- a/app/src/main/java/io/xpipe/app/update/AppInstaller.java +++ b/app/src/main/java/io/xpipe/app/update/AppInstaller.java @@ -151,7 +151,7 @@ public class AppInstaller { var name = AppProperties.get().isStaging() ? "xpipe-ptb" : "xpipe"; var command = String.format( """ - function exec { + exec() { echo "Installing downloaded .deb installer ..." echo "+ sudo apt install \\"%s\\"" DEBIAN_FRONTEND=noninteractive sudo apt-get install -qy "%s" || return 1 @@ -191,7 +191,7 @@ public class AppInstaller { var name = AppProperties.get().isStaging() ? "xpipe-ptb" : "xpipe"; var command = String.format( """ - function exec { + exec() { echo "Installing downloaded .rpm installer ..." echo "+ sudo rpm -U -v --force \\"%s\\"" sudo rpm -U -v --force "%s" || return 1 @@ -231,7 +231,7 @@ public class AppInstaller { var name = AppProperties.get().isStaging() ? "xpipe-ptb" : "xpipe"; var command = String.format( """ - function exec { + exec() { echo "Installing downloaded .pkg installer ..." echo "+ sudo installer -verboseR -allowUntrusted -pkg \\"%s\\" -target /" sudo installer -verboseR -allowUntrusted -pkg "%s" -target / || return 1