mirror of
https://github.com/xpipe-io/xpipe.git
synced 2026-09-23 00:45:35 +00:00
Fixes
This commit is contained in:
@@ -100,11 +100,11 @@ public class StandardStorage extends DataStorage {
|
||||
storeEntries.forEach(dataStoreEntry -> dataStoreEntry.simpleRefresh());
|
||||
|
||||
// Remove even incomplete stores when in production
|
||||
if (!AppPrefs.get().isDevelopmentEnvironment()) {
|
||||
storeEntries.removeIf(entry -> {
|
||||
return !entry.getState().isUsable();
|
||||
});
|
||||
}
|
||||
// if (!AppPrefs.get().isDevelopmentEnvironment()) {
|
||||
// storeEntries.removeIf(entry -> {
|
||||
// return !entry.getState().isUsable();
|
||||
// });
|
||||
// }
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
ErrorEvent.fromThrowable(ex).terminal(true).build().handle();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package io.xpipe.core.process;
|
||||
|
||||
import io.xpipe.core.dialog.Dialog;
|
||||
import io.xpipe.core.util.FailableFunction;
|
||||
import io.xpipe.core.util.SecretValue;
|
||||
import io.xpipe.core.util.XPipeSystemId;
|
||||
@@ -95,7 +96,10 @@ public interface ShellControl extends ProcessControl {
|
||||
|
||||
ShellControl elevated(String message, FailableFunction<ShellControl, Boolean, Exception> elevationFunction);
|
||||
|
||||
ShellControl elevationPassword(SecretValue value);
|
||||
default ShellControl elevationPassword(SecretValue value) {
|
||||
return elevationPassword(() -> value);
|
||||
}
|
||||
ShellControl elevationPassword(Dialog.FailableSupplier<SecretValue> value);
|
||||
|
||||
ShellControl initWith(String cmds);
|
||||
|
||||
@@ -103,7 +107,7 @@ public interface ShellControl extends ProcessControl {
|
||||
|
||||
ShellControl startTimeout(int ms);
|
||||
|
||||
SecretValue getElevationPassword();
|
||||
Dialog.FailableSupplier<SecretValue> getElevationPassword();
|
||||
|
||||
default ShellControl subShell(@NonNull ShellDialect type) {
|
||||
return subShell(p -> type.getOpenCommand(), new TerminalOpenFunction() {
|
||||
|
||||
Vendored
+69
@@ -0,0 +1,69 @@
|
||||
## Changes in 1.5.0
|
||||
|
||||
This is the largest update yet and comes with loads of improvements and changes.
|
||||
As a side effect, it will also break some existing connections, so be prepared for that.
|
||||
|
||||
#### Passwords & Password managers
|
||||
|
||||
This update comes with a first attempt of supporting the retrieval of passwords from external sources.
|
||||
Due to the variety of available password managers and formats, I went with the most straightforward approach here which is essentially delegating that task to the CLI of your password manager.
|
||||
|
||||
Essentially, you're able to specify a command template to retrieve your passwords.
|
||||
For example, by specifying the command template `mypasswordmgr get $KEY`, you can then choose the password went creating connections by just supplying the key argument.
|
||||
XPipe will call the command, read the password, and supply it from there.
|
||||
|
||||
There's also support to specify an arbitrary command or to dynamically prompt the password on each login.
|
||||
|
||||
#### Antivirus adjustments
|
||||
|
||||
As it turns out, several antivirus programs do not like XPipe and what it is doing with shells.
|
||||
As a result, some of them quarantine XPipe and even the system shells itself as they get confused of who is making the calls.
|
||||
|
||||
This update aims to reduce any unexpected issues caused by antivirus programs by automatically detecting whether a problematic antivirus is installed and giving the user the chance to prepare for any upcoming issues.
|
||||
|
||||
#### Fish
|
||||
|
||||
This update brings support for fish as another possible shell type.
|
||||
|
||||
Note that there are several limitations with this implementation as fish does
|
||||
not support an interactive mode in headless environments,
|
||||
resulting in XPipe having to use a fallback shell for certain operations.
|
||||
|
||||
#### CLI
|
||||
|
||||
This update lays the foundation for future advancements in the command-line interface of XPipe.
|
||||
To start off, it comes with a few new commands to read and write files on remote systems directly from your terminal.
|
||||
|
||||
The workflow is designed as follows:
|
||||
|
||||
1. You can list all available connections and their ids to use with `xpipe list`
|
||||
2. Using the command `xpipe drain <id> <remote file path>`, you are able to forward the file contents to the stdout
|
||||
3. Using the command `xpipe sink <id> <remote file path>`, you are able to forward content from your stdin to the remote file
|
||||
|
||||
The id system is flexible, allowing you to only specify as much of the id as is necessary.
|
||||
|
||||
An easy example would be the following: Assume that you have a Windows server with an id of `ssh-windows` and want to filter a file there, but you are missing `grep`.
|
||||
Then you can execute on your local machine: `xpipe drain ssh-windows "C:\myfile.txt" | grep <filter> | xpipe sink ssh-windows "C:\myfile_filtered.txt"`.
|
||||
|
||||
The XPipe CLI should be put automatically in your path upon installation, you can test that with `xpipe --help`.
|
||||
Otherwise, you will find it in `<xpipe dir>/cli/bin/xpipe`.
|
||||
|
||||
#### Cygwin and MSYS2
|
||||
|
||||
XPipe can now automatically detect Cygwin and MSYS2 environments on your machine.
|
||||
This also comes with full support of the feature set for these environments
|
||||
|
||||
#### Misc
|
||||
|
||||
- For every system, XPipe will now also display the appropriate OS/distro logo (if recognized)
|
||||
- Rework SSH key-based authentication to properly interact with agents, now also including pageant
|
||||
- Add ability to test out terminals and editors directly in the settings menu
|
||||
- Implement a new internal API to better assemble complex commands
|
||||
- Rework os detection logic for passthrough environments like Cygwin and MSYS2
|
||||
- Fix desktop directory not being determined correctly on Windows when it was moved from the default location
|
||||
- Rework threading in navigation bar in browser to improve responsiveness
|
||||
- Recheck if prepared update is still the latest one prior to installing it
|
||||
- Built-in documentation popups now honour the dark mode setting
|
||||
- Properly detect applications such as editors and terminals when they are present in the path on Windows
|
||||
- Rework operation mode handling to properly honor the startup mode setting
|
||||
- Many other small miscellaneous fixes and improvements
|
||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
||||
-Dio.xpipe.app.writeSysOut=true
|
||||
-Dio.xpipe.app.writeLogs=true
|
||||
-Dio.xpipe.app.writeLogs=false
|
||||
-Dio.xpipe.app.logLevel=trace
|
||||
-Dio.xpipe.app.developerMode=true
|
||||
-Dio.xpipe.beacon.debugOutput=true
|
||||
Reference in New Issue
Block a user