mirror of
https://github.com/xpipe-io/xpipe.git
synced 2024-11-22 07:30:24 +00:00
Rename project [stage]
This commit is contained in:
parent
19f4b0abc4
commit
623d6be4ad
40 changed files with 165 additions and 165 deletions
|
@ -5,28 +5,28 @@ There are no real formal contribution guidelines right now, they will maybe come
|
|||
|
||||
## Repository Structure
|
||||
|
||||
- [core](core) - Shared core classes of the X-Pipe Java API, X-Pipe extensions, and the X-Pipe daemon implementation
|
||||
- [beacon](beacon) - The X-Pipe beacon component is responsible for handling all communications between the X-Pipe
|
||||
- [core](core) - Shared core classes of the XPipe Java API, XPipe extensions, and the XPipe daemon implementation
|
||||
- [beacon](beacon) - The XPipe beacon component is responsible for handling all communications between the XPipe
|
||||
daemon
|
||||
and the client applications, for example the various programming language APIs and the CLI
|
||||
- [app](app) - Contains the X-Pipe daemon implementation, the X-Pipe desktop application, and an
|
||||
API to create all different kinds of extensions for the X-Pipe platform
|
||||
- [dist](dist) - Tools to create a distributable package of X-Pipe
|
||||
- [ext](ext) - Available X-Pipe extensions. Essentially every feature is implemented as an extension
|
||||
- [app](app) - Contains the XPipe daemon implementation, the XPipe desktop application, and an
|
||||
API to create all different kinds of extensions for the XPipe platform
|
||||
- [dist](dist) - Tools to create a distributable package of XPipe
|
||||
- [ext](ext) - Available XPipe extensions. Essentially every feature is implemented as an extension
|
||||
|
||||
### Open source model
|
||||
|
||||
X-Pipe utilizes an open core model, which essentially means that
|
||||
XPipe utilizes an open core model, which essentially means that
|
||||
the main application is open source while certain other components are not.
|
||||
Select parts are not open source yet, but may be added to this repository in the future.
|
||||
Some tests and especially test environments and that run on private servers
|
||||
are also not included in this repository (Don't want to leak server information).
|
||||
Finally, scripts and workflows to create and publish installers and packages
|
||||
are also not included to prevent attackers from easily impersonating the X-Pipe application.
|
||||
are also not included to prevent attackers from easily impersonating the XPipe application.
|
||||
|
||||
## Modularity
|
||||
|
||||
All X-Pipe components target [JDK 19](https://openjdk.java.net/projects/jdk/19/) and make full use of the Java Module System (JPMS).
|
||||
All XPipe components target [JDK 19](https://openjdk.java.net/projects/jdk/19/) and make full use of the Java Module System (JPMS).
|
||||
All components are modularized, including all their dependencies.
|
||||
In case a dependency is (sadly) not modularized yet, module information is manually added using [moditect](https://github.com/moditect/moditect-gradle-plugin).
|
||||
Further, note that as this is a pretty complicated Java project that fully utilizes modularity,
|
||||
|
@ -36,10 +36,10 @@ The tested and recommended IDE is IntelliJ.
|
|||
|
||||
## Setup
|
||||
|
||||
You need to have an up-to-date version of X-Pipe installed on your local system in order to properly
|
||||
run X-Pipe in a development environment.
|
||||
You need to have an up-to-date version of XPipe installed on your local system in order to properly
|
||||
run XPipe in a development environment.
|
||||
This is due to the fact that some components are only included in the release version and not in this repository.
|
||||
X-Pipe is able to automatically detect your local installation and fetch the required
|
||||
XPipe is able to automatically detect your local installation and fetch the required
|
||||
components from it when it is run in a development environment.
|
||||
|
||||
## Building and Running
|
||||
|
@ -54,5 +54,5 @@ You are also able to properly debug the built production application through two
|
|||
- The `app/scripts/xpiped_debug_attach` script attaches a debugger with the help of [AttachMe](https://plugins.jetbrains.com/plugin/13263-attachme).
|
||||
Just make sure that the attachme process is running within IntelliJ, and the debugger should launch automatically once you start up the application.
|
||||
|
||||
Note that when any unit test is run using a debugger, the X-Pipe daemon process that is started will also attempt
|
||||
Note that when any unit test is run using a debugger, the XPipe daemon process that is started will also attempt
|
||||
to connect to that debugger through [AttachMe](https://plugins.jetbrains.com/plugin/13263-attachme) as well.
|
||||
|
|
32
FAQ.md
32
FAQ.md
|
@ -6,13 +6,13 @@ Compared to other existing tools, the fundamental approach of how to
|
|||
connect and how to communicate with the remote system differs.
|
||||
Other tools utilize the established protocol-based approach, i.e. connect and communicate with a
|
||||
server via a certain protocol like SSH, SFTP, and many more.
|
||||
X-Pipe utilizes a shell-based approach that works on top of command-line programs.
|
||||
XPipe utilizes a shell-based approach that works on top of command-line programs.
|
||||
|
||||
Let's use the example of SSH.
|
||||
Protocol-based programs come with an included SSH library that allows them to interact with a remote system via SSH.
|
||||
This requires an SSH server implementation to be running on the remote system.
|
||||
X-Pipe does not ship with any sort of SSH library or similar.
|
||||
Instead, X-Pipe creates a new process using your local `ssh` executable, which is usually the OpenSSH client.
|
||||
XPipe does not ship with any sort of SSH library or similar.
|
||||
Instead, XPipe creates a new process using your local `ssh` executable, which is usually the OpenSSH client.
|
||||
I.e. it launches the process `ssh user@host` in the background and communicates
|
||||
with the opened remote shell through the stdout, stderr, stdin of the process.
|
||||
From there, it detects what kind of server and environment,
|
||||
|
@ -20,13 +20,13 @@ e.g. shell type, os, etc. you have logged into with that shell connection,
|
|||
and adjusts how it talks to the remote system from there.
|
||||
It effectively delegates everything protocol and connection related to your external programs.
|
||||
|
||||
As a result of this approach, you can do stuff with X-Pipe that you can't do with other tools.
|
||||
As a result of this approach, you can do stuff with XPipe that you can't do with other tools.
|
||||
One example would be connecting and accessing files on a
|
||||
docker container as there's no real protocol to formally connect here by default.
|
||||
X-Pipe can simply execute `docker exec -i <name> sh` to open a shell into the container
|
||||
XPipe can simply execute `docker exec -i <name> sh` to open a shell into the container
|
||||
and handle this shell exactly the same way as any other shell connection.
|
||||
|
||||
More broadly, X-Pipe can work on any shell connection, regardless of how it is established.
|
||||
More broadly, XPipe can work on any shell connection, regardless of how it is established.
|
||||
From its perspective, there's no visible difference between a
|
||||
remote ssh connection and a shell to a local docker container.
|
||||
|
||||
|
@ -37,32 +37,32 @@ Windows/Linux/macOS system that has been released in the last ten years.
|
|||
|
||||
## What else do I need to use this?
|
||||
|
||||
As mentioned previously, X-Pipe itself does not ship with any sort of libraries for connection handling
|
||||
As mentioned previously, XPipe itself does not ship with any sort of libraries for connection handling
|
||||
and instead delegates this to your existing command-line tools.
|
||||
For this approach to work however, you need to have the required tools installed.
|
||||
|
||||
For example, if you want to connect to a remote system via SSH with X-Pipe,
|
||||
For example, if you want to connect to a remote system via SSH with XPipe,
|
||||
you need to have an `ssh` client installed and added to your PATH.
|
||||
The exact vendor and version of this `ssh` command-line
|
||||
tool doesn't matter as long as the standard options are supported.
|
||||
|
||||
If a required program is attempted to be used but can not be found, X-Pipe will notify you.
|
||||
If a required program is attempted to be used but can not be found, XPipe will notify you.
|
||||
|
||||
## Is this secure / Can I entrust my sensitive information to this?
|
||||
|
||||
Due to its nature, X-Pipe has to handle a lot of sensitive information like passwords, keys, and more.
|
||||
Due to its nature, XPipe has to handle a lot of sensitive information like passwords, keys, and more.
|
||||
As security plays a very important role here, there exists a dedicated [security page](/SECURITY.md)
|
||||
that should contain all relevant information for you to make your decision.
|
||||
|
||||
## How does X-Pipe handle privacy?
|
||||
## How does XPipe handle privacy?
|
||||
|
||||
X-Pipe does not collect any sort of data like usage or tracking data.
|
||||
XPipe does not collect any sort of data like usage or tracking data.
|
||||
The only case in which some sort of data is collected is when you choose to
|
||||
use the built-in error reporter to submit a report.
|
||||
This report data is limited to general system and error information, no sensitive information is submitted.
|
||||
For those people who like to read legalese, there's the [privacy policy](/PRIVACY.md).
|
||||
|
||||
## How does X-Pipe handle updates?
|
||||
## How does XPipe handle updates?
|
||||
|
||||
Especially in its early development stage, it can be pretty important to frequently distribute new releases.
|
||||
How exactly the update process is handled depends on your distribution:
|
||||
|
@ -87,9 +87,9 @@ So you can assume that the code is tested and the release is automated!
|
|||
|
||||
There are several to reach out, so you can choose whatever you like best:
|
||||
|
||||
- [X-Pipe Discord Server](https://discord.gg/8y89vS8cRb)
|
||||
- [X-Pipe Slack Server](https://join.slack.com/t/x-pipe/shared_invite/zt-1awjq0t5j-5i4UjNJfNe1VN4b_auu6Cg)
|
||||
- [X-Pipe Issue Tracker](https://github.com/xpipe-io/xpipe/issues)
|
||||
- [XPipe Discord Server](https://discord.gg/8y89vS8cRb)
|
||||
- [XPipe Slack Server](https://join.slack.com/t/XPipe/shared_invite/zt-1awjq0t5j-5i4UjNJfNe1VN4b_auu6Cg)
|
||||
- [XPipe Issue Tracker](https://github.com/xpipe-io/xpipe/issues)
|
||||
|
||||
## I want to be the first to test use new features. How can I do that?
|
||||
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
**Last updated April 21, 2023**
|
||||
|
||||
This privacy notice for X-Pipe, in which ("**we**," "**us**," or "**our**") refers to Christopher Schnick, describes how
|
||||
This privacy notice for XPipe, in which ("**we**," "**us**," or "**our**") refers to Christopher Schnick, describes how
|
||||
and why we
|
||||
might collect, store, use, and/or share ("**process**") your information when you use our services ("**Services**"),
|
||||
such as when you:
|
||||
|
||||
* Download and use our application (X-Pipe), or any other application of ours that links to this privacy notice
|
||||
* Download and use our application (XPipe), or any other application of ours that links to this privacy notice
|
||||
|
||||
**Questions or concerns?** Reading this privacy notice will help you understand your privacy rights and choices. If you
|
||||
do not agree with our policies and practices, please do not use our Services. If you still have any questions or
|
||||
|
|
12
README.md
12
README.md
|
@ -2,7 +2,7 @@
|
|||
|
||||
### A flexible connection manager and remote file explorer
|
||||
|
||||
X-Pipe is a brand-new type of connection manager and remote file explorer that works by only interacting with command-line
|
||||
XPipe is a brand-new type of connection manager and remote file explorer that works by only interacting with command-line
|
||||
tools on local and remote shell connections.
|
||||
This approach makes it much more flexible as it doesn't have to deal with file system APIs or remote file handling
|
||||
protocols at all.
|
||||
|
@ -16,7 +16,7 @@ It currently supports:
|
|||
- Any other custom remote connection methods that works through the command-line
|
||||
- Arbitrary types of proxies to establish connections
|
||||
|
||||
Furthermore, X-Pipe integrates with your existing tools and workflows
|
||||
Furthermore, XPipe integrates with your existing tools and workflows
|
||||
by outsourcing as many tasks as possible to your favourite
|
||||
text/code editors, terminals, shells, command-line tools and more.
|
||||
The platform is designed to be extensible, allowing anyone
|
||||
|
@ -61,11 +61,11 @@ Head over to the [releases page](https://github.com/xpipe-io/xpipe/releases/late
|
|||
|
||||
In case you're interested in development, check out the [development page](/DEVELOPMENT.md).
|
||||
|
||||
For information about the security model of X-Pipe, see the [security page](/SECURITY.md).
|
||||
For information about the security model of XPipe, see the [security page](/SECURITY.md).
|
||||
|
||||
For information about the privacy policy of X-Pipe, see the [privacy page](/PRIVACY.md).
|
||||
For information about the privacy policy of XPipe, see the [privacy page](/PRIVACY.md).
|
||||
|
||||
If you want to talk you can also join:
|
||||
|
||||
- The [X-Pipe Discord Server](https://discord.gg/8y89vS8cRb)
|
||||
- The [X-Pipe Slack Server](https://join.slack.com/t/x-pipe/shared_invite/zt-1awjq0t5j-5i4UjNJfNe1VN4b_auu6Cg)
|
||||
- The [XPipe Discord Server](https://discord.gg/8y89vS8cRb)
|
||||
- The [XPipe Slack Server](https://join.slack.com/t/XPipe/shared_invite/zt-1awjq0t5j-5i4UjNJfNe1VN4b_auu6Cg)
|
||||
|
|
60
SECURITY.md
60
SECURITY.md
|
@ -1,63 +1,63 @@
|
|||
# Security
|
||||
|
||||
Due to its nature, X-Pipe has to handle a lot of sensitive information.
|
||||
Due to its nature, XPipe has to handle a lot of sensitive information.
|
||||
This can range from passwords for all kinds of servers, to SSH keys, and more.
|
||||
Therefore, the security model of X-Pipe plays a very important role.
|
||||
Therefore, the security model of XPipe plays a very important role.
|
||||
|
||||
This document summarizes the approach of X-Pipe when it comes to the security of your sensitive information.
|
||||
This document summarizes the approach of XPipe when it comes to the security of your sensitive information.
|
||||
If any of your questions are left unanswered by this document, feel free to file an
|
||||
issue report so your question can be answered individually and can also potentially be included in this document.
|
||||
|
||||
## Reporting a security vulnerability
|
||||
|
||||
If you believe that you found a security vulnerability in X-Pipe,
|
||||
If you believe that you found a security vulnerability in XPipe,
|
||||
you can make use of
|
||||
the [private security report feature](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)
|
||||
of GitHub.
|
||||
|
||||
## Security assumptions
|
||||
|
||||
The general assumption is that the system on which X-Pipe runs on is not badly infected.
|
||||
This refers to your local system on which you installed X-Pipe, not any remote systems that you then connect to.
|
||||
The general assumption is that the system on which XPipe runs on is not badly infected.
|
||||
This refers to your local system on which you installed XPipe, not any remote systems that you then connect to.
|
||||
If your local system is infected to an extent where malicious programs can modify the
|
||||
file system and other installed programs like X-Pipe,
|
||||
then there is no technical way of preventing malicious programs to also infect X-Pipe and the connected systems as well.
|
||||
file system and other installed programs like XPipe,
|
||||
then there is no technical way of preventing malicious programs to also infect XPipe and the connected systems as well.
|
||||
|
||||
## Reliance on other programs
|
||||
|
||||
X-Pipe essentially outsources any form of connection and shell handling to your existing command-line tools.
|
||||
XPipe essentially outsources any form of connection and shell handling to your existing command-line tools.
|
||||
It does not come with any remote handling capabilities of its own.
|
||||
Therefore, any used command-line program should be secure.
|
||||
If for example your `ssh` command-line program or its connections are susceptible to MITM attacks or
|
||||
vulnerable in any other way, there is no way for X-Pipe to keep the sensitive information secure.
|
||||
vulnerable in any other way, there is no way for XPipe to keep the sensitive information secure.
|
||||
It is your responsibility to use the programs in a secure environment and keep them up to date with security patches and
|
||||
more.
|
||||
X-Pipe can only be as secure as your underlying command-line tools itself.
|
||||
XPipe can only be as secure as your underlying command-line tools itself.
|
||||
|
||||
X-Pipe calls these programs almost exactly as you would do manually in your terminal
|
||||
XPipe calls these programs almost exactly as you would do manually in your terminal
|
||||
with some a few additional parameters to automatically pass login information
|
||||
and adapt the environment to make it work properly.
|
||||
The called program therefore automatically uses your
|
||||
system configuration for it, e.g. your system SSH configs.
|
||||
|
||||
X-Pipe does not perform any validation or version checking for the programs it calls.
|
||||
For example, when establishing an ssh connection through X-Pipe, it will straight up call `ssh user@host <options>`.
|
||||
XPipe does not perform any validation or version checking for the programs it calls.
|
||||
For example, when establishing an ssh connection through XPipe, it will straight up call `ssh user@host <options>`.
|
||||
It is assumed that this `ssh` executable is secure and the one that you actually want to use.
|
||||
|
||||
## Data security and privacy
|
||||
|
||||
The general approach of X-Pipe can be summarized as follows:
|
||||
The general approach of XPipe can be summarized as follows:
|
||||
|
||||
- Any sensitive information should be kept as secure as possible exclusively on your local machine,
|
||||
both while X-Pipe is running and also not running
|
||||
- When sensitive information is required on another remote system that is connected through X-Pipe, that information
|
||||
both while XPipe is running and also not running
|
||||
- When sensitive information is required on another remote system that is connected through XPipe, that information
|
||||
should be transferred and
|
||||
remain there as briefly and securely as possible
|
||||
- No sensitive information should be sent to any other server outside your network of trusted connections
|
||||
|
||||
### Storage of sensitive information
|
||||
|
||||
All X-Pipe data is exclusively stored on your local machine at `~/.xpipe/storage`.
|
||||
All XPipe data is exclusively stored on your local machine at `~/.xpipe/storage`.
|
||||
You can choose to change this storage location in the settings menu.
|
||||
|
||||
All sensitive information is encrypted when it is saved to disk on your local machine using AES
|
||||
|
@ -82,7 +82,7 @@ Then the passed sensitive information is just written into the stdin of the prog
|
|||
or file system.
|
||||
|
||||
When a program only accepts password input via an environment variable or an askpass program,
|
||||
a self deleting password supplier script file is generated by X-Pipe.
|
||||
a self deleting password supplier script file is generated by XPipe.
|
||||
This script contains the encrypted password and will supply
|
||||
the password to the target program exactly once when invoked and immediately deletes itself afterwards.
|
||||
This behavior ensures that there is no leftover password script after an operation is performed.
|
||||
|
@ -94,7 +94,7 @@ up in any kind of shell history or on any file system.
|
|||
|
||||
### The purpose of shell scripts
|
||||
|
||||
Whenever you open a remote connection in a terminal from X-Pipe, you will notice that your terminal shows
|
||||
Whenever you open a remote connection in a terminal from XPipe, you will notice that your terminal shows
|
||||
the name of a script located in your temp directory in the title bar to indicate that you're currently executing it.
|
||||
The naming scheme of these scripts is usually something like `xpipe/exec-<id>.(bat|sh|ps1)`
|
||||
This is intended as these scripts contain all commands that are required
|
||||
|
@ -111,21 +111,21 @@ instantly so any attacker doesn't obtain any sensitive information from it.
|
|||
|
||||
### Logging
|
||||
|
||||
By default, X-Pipe creates log files located in `~/.xpipe/logs`.
|
||||
By default, XPipe creates log files located in `~/.xpipe/logs`.
|
||||
Under normal conditions these log files do not contain any sensitive information.
|
||||
If you choose to alter the log level in the settings menu or launch X-Pipe in debug mode,
|
||||
If you choose to alter the log level in the settings menu or launch XPipe in debug mode,
|
||||
these log files will contain a lot more and finer grained information, some of which might be sensitive.
|
||||
|
||||
### Issue reports
|
||||
|
||||
Whenever an error occurs within X-Pipe or you choose to open the error reporter dialog,
|
||||
Whenever an error occurs within XPipe or you choose to open the error reporter dialog,
|
||||
you have the option to automatically send an error report with optional feedback and attachments.
|
||||
This error report does not contain any sensitive information unless
|
||||
you explicitly choose to attach debug mode log files (See above).
|
||||
|
||||
## Isolation
|
||||
|
||||
Any infected remote system should be isolated enough such that any infection can't spread through X-Pipe.
|
||||
Any infected remote system should be isolated enough such that any infection can't spread through XPipe.
|
||||
|
||||
### User isolation
|
||||
|
||||
|
@ -135,22 +135,22 @@ Any other user on a system can't read or write them unless they have root/Admini
|
|||
|
||||
### Isolation of remote systems
|
||||
|
||||
When you add a remote system as a host within X-Pipe, it is implicitly assumed that you trust this system.
|
||||
When you add a remote system as a host within XPipe, it is implicitly assumed that you trust this system.
|
||||
Any required login information is sent to and handled on that remote host when required,
|
||||
so it would be possible for malicious program with sufficient privileges to obtain any information sent to that host.
|
||||
This would require an attacker to be able to access files of the user that is used to log into the remote system.
|
||||
It should however not be possible for any malicious program on the remote host to obtain
|
||||
other information stored by X-Pipe that is not explicitly sent to that host.
|
||||
other information stored by XPipe that is not explicitly sent to that host.
|
||||
|
||||
## Antivirus programs
|
||||
|
||||
### Windows
|
||||
|
||||
It may occasionally happen that Windows Defender warns and
|
||||
even sometimes deletes X-Pipe due to it identifying the application as malware.
|
||||
even sometimes deletes XPipe due to it identifying the application as malware.
|
||||
The reason for this is simple: The application is not signed with an EV code signing
|
||||
certificate as this would require a company for X-Pipe to be set up and would also cost around 600$+ per year.
|
||||
If X-Pipe was signed with such a certificate, as are most Windows applications distributed by companies, all warnings
|
||||
certificate as this would require a company for XPipe to be set up and would also cost around 600$+ per year.
|
||||
If XPipe was signed with such a certificate, as are most Windows applications distributed by companies, all warnings
|
||||
would go away automatically.
|
||||
The Windows Defender / Windows SmartScreen system is essentially pay-to-win here.
|
||||
Just paying the appropriate amount will automatically whitelist your application (even it is unsafe / essentially
|
||||
|
@ -166,7 +166,7 @@ In summary, don't rely on Windows Defender to be accurate when it comes to false
|
|||
All artifacts of every release are automatically analyzed on VirusTotal
|
||||
and you can find the results linked at the bottom of every release.
|
||||
From there you should be able to get a better overview over the actual
|
||||
threat level of X-Pipe instead of purely relying on Windows Defender.
|
||||
threat level of XPipe instead of purely relying on Windows Defender.
|
||||
|
||||
### macOS
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.xpipe/xpipe-api/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.xpipe/xpipe-api)
|
||||
[![javadoc](https://javadoc.io/badge2/io.xpipe/xpipe-api/javadoc.svg)](https://javadoc.io/doc/io.xpipe/xpipe-api)
|
||||
|
||||
## X-Pipe Java API
|
||||
## XPipe Java API
|
||||
|
||||
The X-Pipe API for Java allows you to use most of the X-Pipe functionality from Java applications:
|
||||
The XPipe API for Java allows you to use most of the XPipe functionality from Java applications:
|
||||
|
||||
- Create data stores and data sources
|
||||
- Query and work with the contents of data sources
|
||||
|
|
|
@ -13,8 +13,8 @@ publishing {
|
|||
}
|
||||
|
||||
pom {
|
||||
name = 'X-Pipe Java API'
|
||||
description = 'Contains everything necessary to interact with X-Pipe from Java applications.'
|
||||
name = 'XPipe Java API'
|
||||
description = 'Contains everything necessary to interact with XPipe from Java applications.'
|
||||
url = 'https://github.com/xpipe-io/xpipe/api'
|
||||
licenses {
|
||||
license {
|
||||
|
|
|
@ -14,13 +14,13 @@ import java.nio.file.Files;
|
|||
import java.nio.file.Path;
|
||||
|
||||
/**
|
||||
* Represents a reference to a data source that is managed by X-Pipe.
|
||||
* Represents a reference to a data source that is managed by XPipe.
|
||||
* <p>
|
||||
* The actual data is only queried when required and is not cached.
|
||||
* Therefore, the queried data is always up-to-date at the point of calling a method that queries the data.
|
||||
* <p>
|
||||
* As soon a data source reference is created, the data source is locked
|
||||
* within X-Pipe to prevent concurrent modification and the problems that can arise from it.
|
||||
* within XPipe to prevent concurrent modification and the problems that can arise from it.
|
||||
* By default, the lock is held until the calling program terminates and prevents
|
||||
* other applications from modifying the data source in any way.
|
||||
* To unlock the data source earlier, you can make use the {@link #unlock()} method.
|
||||
|
|
|
@ -108,7 +108,7 @@ List<String> jvmRunArgs = [
|
|||
"--enable-preview",
|
||||
// "-XX:+ExitOnOutOfMemoryError",
|
||||
"-Dfile.encoding=UTF-8",
|
||||
"-Dvisualvm.display.name=X-Pipe"
|
||||
"-Dvisualvm.display.name=XPipe"
|
||||
]
|
||||
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ public class BrowseDirectoryComp extends SimpleComp {
|
|||
if (sc.getOsType().equals(OsType.WINDOWS)) {
|
||||
sc.executeSimpleCommand(ScriptHelper.createDetachCommand(sc, "\"" + script + "\""));
|
||||
} else {
|
||||
TerminalHelper.open("X-Pipe Debug", "\"" + script + "\"");
|
||||
TerminalHelper.open("XPipe Debug", "\"" + script + "\"");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -37,7 +37,7 @@ public class App extends Application {
|
|||
icon = AppImages.image("logo.png");
|
||||
|
||||
// Set dock icon explicitly on mac
|
||||
// This is necessary in case X-Pipe was started through a script as it will have no icon otherwise
|
||||
// This is necessary in case XPipe was started through a script as it will have no icon otherwise
|
||||
if (OsType.getLocal().equals(OsType.MACOS)) {
|
||||
try {
|
||||
var iconUrl = Main.class.getResourceAsStream("resources/img/logo.png");
|
||||
|
|
|
@ -69,7 +69,7 @@ public class AppExtensionManager {
|
|||
Path p = Path.of(localInstallation);
|
||||
if (!Files.exists(p)) {
|
||||
throw new IllegalStateException(
|
||||
"Required local X-Pipe installation was not found but is required for development");
|
||||
"Required local XPipe installation was not found but is required for development");
|
||||
}
|
||||
|
||||
var extensions = XPipeInstallation.getLocalExtensionsDirectory(p);
|
||||
|
|
|
@ -41,7 +41,7 @@ public class AppTray {
|
|||
.menuItem(AppI18n.get("quit"), e -> {
|
||||
OperationMode.close();
|
||||
})
|
||||
.toolTip("X-Pipe")
|
||||
.toolTip("XPipe")
|
||||
.build();
|
||||
this.errorHandler = new TrayErrorHandler();
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ import java.util.List;
|
|||
import java.util.concurrent.Callable;
|
||||
|
||||
@CommandLine.Command(
|
||||
header = "Launches the X-Pipe daemon.",
|
||||
header = "Launches the XPipe daemon.",
|
||||
sortOptions = false,
|
||||
showEndOfOptionsDelimiterInUsageHelp = true)
|
||||
public class LauncherCommand implements Callable<Integer> {
|
||||
|
|
|
@ -110,7 +110,7 @@ public interface ExternalTerminalType extends PrefsChoiceValue {
|
|||
@Override
|
||||
protected String toCommand(String name, String file) {
|
||||
// Note for later: When debugging konsole launches, it will always open as a child process of
|
||||
// IntelliJ/X-Pipe even though we try to detach it.
|
||||
// IntelliJ/XPipe even though we try to detach it.
|
||||
// This is not the case for production where it works as expected
|
||||
return "--new-tab -e \"" + file + "\"";
|
||||
}
|
||||
|
|
|
@ -204,7 +204,7 @@ public class AppInstaller {
|
|||
exec || read -rsp "Update failed ..."$'\\n' -n 1 key
|
||||
""",
|
||||
file, file));
|
||||
TerminalHelper.open("X-Pipe Updater", command);
|
||||
TerminalHelper.open("XPipe Updater", command);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -241,7 +241,7 @@ public class AppInstaller {
|
|||
exec || read -rsp "Update failed ..."$'\\n' -n 1 key
|
||||
""",
|
||||
file, file));
|
||||
TerminalHelper.open("X-Pipe Updater", command);
|
||||
TerminalHelper.open("XPipe Updater", command);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -279,7 +279,7 @@ public class AppInstaller {
|
|||
exec || read -rsp "Update failed ..."$'\\n' -n 1 key
|
||||
""",
|
||||
file, file));
|
||||
TerminalHelper.open("X-Pipe Updater", command);
|
||||
TerminalHelper.open("XPipe Updater", command);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ public class DesktopShortcuts {
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=%s
|
||||
Comment=Open with X-Pipe
|
||||
Comment=Open with XPipe
|
||||
Exec="%s" open %s
|
||||
Icon=%s
|
||||
Terminal=false
|
||||
|
|
|
@ -11,7 +11,7 @@ public class Hyperlinks {
|
|||
public static final String SECURITY = "https://github.com/xpipe-io/xpipe/blob/master/SECURITY.md";
|
||||
public static final String DISCORD = "https://discord.gg/8y89vS8cRb";
|
||||
public static final String SLACK =
|
||||
"https://join.slack.com/t/x-pipe/shared_invite/zt-1awjq0t5j-5i4UjNJfNe1VN4b_auu6Cg";
|
||||
"https://join.slack.com/t/XPipe/shared_invite/zt-1awjq0t5j-5i4UjNJfNe1VN4b_auu6Cg";
|
||||
public static final String DOCS_PRIVACY = "https://xpipe.io/docs/privacy";
|
||||
|
||||
static final String[] browsers = {
|
||||
|
|
|
@ -19,12 +19,12 @@ public class XPipeSession {
|
|||
boolean isNewBuildSession;
|
||||
|
||||
/**
|
||||
* Unique identifier that resets on every X-Pipe restart.
|
||||
* Unique identifier that resets on every XPipe restart.
|
||||
*/
|
||||
UUID sessionId;
|
||||
|
||||
/**
|
||||
* Unique identifier that resets on every X-Pipe update.
|
||||
* Unique identifier that resets on every XPipe update.
|
||||
*/
|
||||
UUID buildSessionId;
|
||||
|
||||
|
|
|
@ -2,11 +2,11 @@ introTitle=Data sources
|
|||
introDescription=Pipe, manage, and store many different types of data.
|
||||
introCollection=Data source collections allow you to store and\norganize all your data sources for later use.
|
||||
introPipe=Pipe data from any origin to any destination\nacross formats while maintaining compatibility.
|
||||
introDocumentation=In case you prefer a more structured approach to\nfamiliarizing yourself with X-Pipe, check out the documentation:
|
||||
introDocumentation=In case you prefer a more structured approach to\nfamiliarizing yourself with XPipe, check out the documentation:
|
||||
introEntry=Once you have done that, you can add a new data source to it.\nThere are different types of data sources to choose from:
|
||||
introTableDataSource=Tabular data sources, for example a database table, an excel sheet, or a csv file.
|
||||
dataSourceIntroTitle=Categories of Data Sources
|
||||
dataSourceIntroDescription=The next step is to add a data sources to this collection (See above). X-Pipe\ndifferentiates between several categories of data sources for different purposes.
|
||||
dataSourceIntroDescription=The next step is to add a data sources to this collection (See above). XPipe\ndifferentiates between several categories of data sources for different purposes.
|
||||
dataSourceIntroTable=Tabular data sources contain data represented by some kind of table.\nExamples are database tables, Excel sheets, or .csv files.
|
||||
dataSourceIntroStructure=Structure data sources contain some form of object structure.\nExamples are .json files, .xml files, or certain types of NoSQL databases.
|
||||
dataSourceIntroText=Text data sources contain readable text that can\ncome in a variety of different encodings and simple formats.
|
||||
|
@ -18,4 +18,4 @@ storeStreamDescription=Stream connections produce raw byte data\nthat can be use
|
|||
storeMachineDescription=You can quickly search for available remote connections automatically.\nAlternatively, you can also of course add them manually.
|
||||
detectConnections=Search for connections
|
||||
storeDatabaseDescription=Database connections allow you to connect to\na database server and interact with its contained data.
|
||||
storeDocumentation=In case you prefer a more structured approach to\nfamiliarizing yourself with X-Pipe, check out the documentation:
|
||||
storeDocumentation=In case you prefer a more structured approach to\nfamiliarizing yourself with XPipe, check out the documentation:
|
||||
|
|
|
@ -8,8 +8,8 @@ useSystemFont=Use system font
|
|||
updates=Updates
|
||||
advanced=Advanced
|
||||
workspaceLock=Workspace lock
|
||||
workspaceLockDescription=Sets a custom password to encrypt your stored information in X-Pipe. This results in increased security as it provides an additional layer of encryption for your stored sensitive information. You will then be prompted to enter the password when X-Pipe starts.
|
||||
useSystemFontDescription=Controls whether to use your system font or the default font used by X-Pipe (Roboto).
|
||||
workspaceLockDescription=Sets a custom password to encrypt your stored information in XPipe. This results in increased security as it provides an additional layer of encryption for your stored sensitive information. You will then be prompted to enter the password when XPipe starts.
|
||||
useSystemFontDescription=Controls whether to use your system font or the default font used by XPipe (Roboto).
|
||||
tooltipDelay=Tooltip delay
|
||||
tooltipDelayDescription=The amount of milliseconds to wait until a tooltip is displayed.
|
||||
fontSize=Font size
|
||||
|
@ -23,19 +23,19 @@ updateToPrereleasesDescription=When enabled, the update check will also look for
|
|||
storage=Storage
|
||||
runOnStartup=Run on startup
|
||||
closeBehaviour=Close behaviour
|
||||
closeBehaviourDescription=Controls how X-Pipe should proceed upon closing its main window.
|
||||
closeBehaviourDescription=Controls how XPipe should proceed upon closing its main window.
|
||||
language=Language
|
||||
lightTheme=Light Theme
|
||||
darkTheme=Dark Theme
|
||||
exit=Quit X-Pipe
|
||||
exit=Quit XPipe
|
||||
continueInBackground=Continue in background
|
||||
minimizeToTray=Minimize to tray
|
||||
closeBehaviourAlertTitle=Set closing behaviour
|
||||
closeBehaviourAlertTitleHeader=Select what should happen when closing the window.
|
||||
externalStartupBehaviour=External startup behaviour
|
||||
externalStartupBehaviourDescription=Controls the behavior of the desktop application when X-Pipe is started from for example the CLI or an API.
|
||||
externalStartupBehaviourDescription=Controls the behavior of the desktop application when XPipe is started from for example the CLI or an API.
|
||||
clearCachesAlertTitle=Clean Cache
|
||||
clearCachesAlertTitleHeader=Do you want to clean all X-Pipe caches?
|
||||
clearCachesAlertTitleHeader=Do you want to clean all XPipe caches?
|
||||
clearCachesAlertTitleContent=Note that this will delete all the data that is stored to improve the user experience, for example file usage histories.
|
||||
startGui=Start GUI
|
||||
startInTray=Start in tray
|
||||
|
@ -48,11 +48,11 @@ notAnAbsolutePath=Not an absolute path
|
|||
notADirectory=Not a directory
|
||||
notAnEmptyDirectory=Not an empty directory
|
||||
automaticallyUpdate=Check for updates
|
||||
automaticallyUpdateDescription=When enabled, new release information is automatically fetched in the background while X-Pipe is running.
|
||||
automaticallyUpdateDescription=When enabled, new release information is automatically fetched in the background while XPipe is running.
|
||||
sendAnonymousErrorReports=Send anonymous error reports
|
||||
sendUsageStatistics=Send anonymous usage statistics
|
||||
storageDirectory=Storage directory
|
||||
storageDirectoryDescription=The location where X-Pipe should store all connection and data source information.
|
||||
storageDirectoryDescription=The location where XPipe should store all connection and data source information.
|
||||
logLevel=Log level
|
||||
appBehaviour=Application behaviour
|
||||
logLevelDescription=The log level that should be used when writing log files.
|
||||
|
@ -79,7 +79,7 @@ developerShowHiddenEntriesDescription=When enabled, hidden and internal data sou
|
|||
developerShowHiddenProviders=Show hidden providers
|
||||
developerShowHiddenProvidersDescription=Controls whether hidden and internal connection and data source providers will be shown in the creation dialog.
|
||||
developerDisableConnectorInstallationVersionCheck=Disable Connector Version Check
|
||||
developerDisableConnectorInstallationVersionCheckDescription=Controls whether the update checker will ignore the version number when inspecting the version of an X-Pipe connector installed on a remote machine.
|
||||
developerDisableConnectorInstallationVersionCheckDescription=Controls whether the update checker will ignore the version number when inspecting the version of an XPipe connector installed on a remote machine.
|
||||
konsole=Konsole
|
||||
xfce=Xfce
|
||||
macosTerminal=Terminal.app
|
||||
|
|
|
@ -56,15 +56,15 @@ appendDescription=Appends the new content to the existing content
|
|||
prependDescription=Prepends the new content to the existing content
|
||||
yes=Yes
|
||||
no=No
|
||||
connectorInstallationTitle=X-Pipe Connector
|
||||
connectorInstallationHeader=Would you like to install the X-Pipe connector on that host?
|
||||
connectorInstallationContent=Some operations require the X-Pipe connector to be installed on the host. Note that this operation may take some time.
|
||||
connectorInstallationTitle=XPipe Connector
|
||||
connectorInstallationHeader=Would you like to install the XPipe connector on that host?
|
||||
connectorInstallationContent=Some operations require the XPipe connector to be installed on the host. Note that this operation may take some time.
|
||||
errorOccured=An error occured
|
||||
terminalErrorOccured=A terminal error occured
|
||||
errorTypeOccured=An exception of type $TYPE$ was thrown
|
||||
permissionsAlertTitle=Permissions required
|
||||
permissionsAlertHeader=Additional permissions are required to perform this operation.
|
||||
permissionsAlertContent=Please follow the pop-up to give X-Pipe the required permissions in the privacy settings menu.
|
||||
permissionsAlertContent=Please follow the pop-up to give XPipe the required permissions in the privacy settings menu.
|
||||
errorDetails=Show details
|
||||
target=Target
|
||||
data=Data
|
||||
|
@ -72,14 +72,14 @@ more=More
|
|||
pipeDataSource=Pipe Data Source
|
||||
updateReadyAlertTitle=Update Ready
|
||||
updateReadyAlertHeader=An update to version $VERSION$ is ready to be installed
|
||||
updateReadyAlertContent=This will install the new version and restart X-Pipe once the installation finished.
|
||||
updateReadyAlertContent=This will install the new version and restart XPipe once the installation finished.
|
||||
errorNoDetail=No error details are available
|
||||
updateAvailableTitle=Update Available
|
||||
updateAvailableHeader=An X-Pipe update to version $VERSION$ is available to install
|
||||
updateAvailableContent=Even though X-Pipe could not be started, you can attempt to install the update to potentially fix the issue.
|
||||
updateAvailableHeader=An XPipe update to version $VERSION$ is available to install
|
||||
updateAvailableContent=Even though XPipe could not be started, you can attempt to install the update to potentially fix the issue.
|
||||
clipboardActionDetectedTitle=Clipboard Action detected
|
||||
clipboardActionDetectedHeader=Do you want to import your clipboard content?
|
||||
clipboardActionDetectedContent=X-Pipe detected content in your clipboard that can be opened. Do you want to open it now?
|
||||
clipboardActionDetectedContent=XPipe detected content in your clipboard that can be opened. Do you want to open it now?
|
||||
install=Install ...
|
||||
ignore=Ignore
|
||||
possibleActions=Possible actions
|
||||
|
@ -168,7 +168,7 @@ slack=Slack
|
|||
support=Support
|
||||
github=GitHub
|
||||
openSourceNotices=Open Source Notices
|
||||
xPipeClient=X-Pipe Desktop
|
||||
xPipeClient=XPipe Desktop
|
||||
checkForUpdates=Check for updates
|
||||
lastChecked=Last checked
|
||||
version=Version
|
||||
|
@ -184,7 +184,7 @@ legalAccept=I accept the EULA and the privacy policy
|
|||
confirm=Confirm
|
||||
whatsNew=What's new in version $VERSION$?
|
||||
updateChangelogAlertTitle=Changelog
|
||||
greetingsAlertTitle=Welcome to X-Pipe
|
||||
greetingsAlertTitle=Welcome to XPipe
|
||||
gotIt=Got It
|
||||
eula=End-user license agreement
|
||||
introduction=Introduction
|
||||
|
@ -202,7 +202,7 @@ installationFiles=Installation Files
|
|||
openInstallationDirectory=Open installation directory
|
||||
launchDebugMode=Launch debug mode
|
||||
extensionInstallTitle=Download
|
||||
extensionInstallDescription=This action requires additional third party libraries that are not distributed by X-Pipe. You can automatically install them here. The components are then downloaded from the vendor website:
|
||||
extensionInstallDescription=This action requires additional third party libraries that are not distributed by XPipe. You can automatically install them here. The components are then downloaded from the vendor website:
|
||||
extensionInstallLicenseNote=By performing the download and automatic installation you agree to the terms of the third party licenses:
|
||||
license=License
|
||||
installRequired=Installation Required
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
## END-USER LICENSE AGREEMENT
|
||||
|
||||
This End-User License Agreement (EULA) is a legal agreement between you (either as an individual or on behalf of an
|
||||
entity) and Christopher Schnick regarding your use of X-Pipe's desktop applications, and associated documentation (the "
|
||||
entity) and Christopher Schnick regarding your use of XPipe's desktop applications, and associated documentation (the "
|
||||
Software"). IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS EULA, DO NOT INSTALL, USE OR COPY THE SOFTWARE.
|
||||
|
||||
### Summary
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
## Welcome to X-Pipe!
|
||||
## Welcome to XPipe!
|
||||
|
||||
Thank you for trying out the X-Pipe Alpha.
|
||||
Thank you for trying out the XPipe Alpha.
|
||||
You can overview the development status, report issues, and more at the following places:
|
||||
|
||||
#### [GitHub Repository](https://github.com/xpipe-io/xpipe/)
|
||||
|
||||
#### [Discord Server](https://discord.gg/8y89vS8cRb)
|
||||
|
||||
#### [Slack Server](https://join.slack.com/t/x-pipe/shared_invite/zt-1awjq0t5j-5i4UjNJfNe1VN4b_auu6Cg)
|
||||
#### [Slack Server](https://join.slack.com/t/XPipe/shared_invite/zt-1awjq0t5j-5i4UjNJfNe1VN4b_auu6Cg)
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.xpipe/xpipe-beacon/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.xpipe/xpipe-beacon)
|
||||
[![javadoc](https://javadoc.io/badge2/io.xpipe/xpipe-beacon/javadoc.svg)](https://javadoc.io/doc/io.xpipe/xpipe-beacon)
|
||||
|
||||
## X-Pipe Beacon
|
||||
## XPipe Beacon
|
||||
|
||||
The X-Pipe beacon component is responsible for handling all communications between the X-Pipe daemon
|
||||
The XPipe beacon component is responsible for handling all communications between the XPipe daemon
|
||||
and the various programming language APIs and the CLI. It provides an API that supports all kinds
|
||||
of different operations.
|
||||
|
||||
|
@ -15,7 +15,7 @@ of different operations.
|
|||
- The data structures and exchange protocols are specified in the
|
||||
[io.xpipe.beacon.exchange package](src/main/java/io/xpipe/beacon/exchange).
|
||||
|
||||
- Every exchange is initiated from the outside by sending a request message to the X-Pipe daemon.
|
||||
- Every exchange is initiated from the outside by sending a request message to the XPipe daemon.
|
||||
The daemon then always sends a response message.
|
||||
|
||||
- The header information of a message is formatted in the json format.
|
||||
|
@ -39,7 +39,7 @@ Note that if both sides do not have the same port setting, they won't be able to
|
|||
#### Custom launch command
|
||||
|
||||
The beacon API also supports launching the daemon automatically in case it is not started yet.
|
||||
By default, it launches the daemon of the local X-Pipe installation.
|
||||
By default, it launches the daemon of the local XPipe installation.
|
||||
It is possible to pass a custom launch command with the property `io.xpipe.beacon.customDaemonCommand=<cmd>`
|
||||
and pass arguments to it using the property `io.xpipe.beacon.daemonArgs=<args>`.
|
||||
This allows for a custom launch behaviour in a testing/development environment.
|
||||
|
|
|
@ -14,8 +14,8 @@ publishing {
|
|||
|
||||
|
||||
pom {
|
||||
name = 'X-Pipe Beacon'
|
||||
description = 'The socket-based implementation used for the communication with the X-Pipe daemon.'
|
||||
name = 'XPipe Beacon'
|
||||
description = 'The socket-based implementation used for the communication with the XPipe daemon.'
|
||||
url = 'https://github.com/xpipe-io/xpipe/beacon'
|
||||
licenses {
|
||||
license {
|
||||
|
|
|
@ -55,7 +55,7 @@ public class BeaconClient implements AutoCloseable {
|
|||
public static BeaconClient connectProxy(ShellStore proxy) throws Exception {
|
||||
var control = proxy.control().start();
|
||||
if (!ProxyManagerProvider.get().setup(control)) {
|
||||
throw new IOException("X-Pipe connector required to perform operation");
|
||||
throw new IOException("XPipe connector required to perform operation");
|
||||
}
|
||||
var command = control.command("xpipe beacon --raw").start();
|
||||
command.discardErr();
|
||||
|
@ -316,7 +316,7 @@ public class BeaconClient implements AutoCloseable {
|
|||
|
||||
@Override
|
||||
public String toDisplayString() {
|
||||
return "X-Pipe CLI";
|
||||
return "XPipe CLI";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -357,7 +357,7 @@ public class BeaconClient implements AutoCloseable {
|
|||
|
||||
@Override
|
||||
public String toDisplayString() {
|
||||
return "X-Pipe Gateway " + version;
|
||||
return "XPipe Gateway " + version;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -373,7 +373,7 @@ public class BeaconClient implements AutoCloseable {
|
|||
|
||||
@Override
|
||||
public String toDisplayString() {
|
||||
return String.format("X-Pipe %s API v%s", language, version);
|
||||
return String.format("XPipe %s API v%s", language, version);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.xpipe/xpipe-core/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.xpipe/xpipe-core)
|
||||
[![javadoc](https://javadoc.io/badge2/io.xpipe/xpipe-core/javadoc.svg)](https://javadoc.io/doc/io.xpipe/xpipe-core)
|
||||
|
||||
## X-Pipe Core
|
||||
## XPipe Core
|
||||
|
||||
The X-Pipe core module contains all the shared core classes used by the API, beacon, and daemon implementation.
|
||||
The XPipe core module contains all the shared core classes used by the API, beacon, and daemon implementation.
|
||||
It contains the following packages:
|
||||
|
||||
- [charsetter](src/main/java/io/xpipe/core/charsetter): Classes for handling all things charset
|
||||
related such as detection and handling of data streams with BOMs.
|
||||
|
||||
- [data](src/main/java/io/xpipe/core/data): Contains all definitions of the
|
||||
internal X-Pipe data model and all the IO functionality to read and write these data structures.
|
||||
For more information, see [X-Pipe data model](https://xpipe-io.readthedocs.io/en/latest/dev/model.html)
|
||||
internal XPipe data model and all the IO functionality to read and write these data structures.
|
||||
For more information, see [XPipe data model](https://xpipe-io.readthedocs.io/en/latest/dev/model.html)
|
||||
|
||||
- [dialog](src/main/java/io/xpipe/core/dialog): In API to create server/daemon side CLI dialogs.
|
||||
These are used by extensions for data source and data store configuration from the command line.
|
||||
|
|
|
@ -6,8 +6,8 @@ publishing {
|
|||
from components.java
|
||||
|
||||
pom {
|
||||
name = 'X-Pipe Core'
|
||||
description = 'Core classes used by all X-Pipe components.'
|
||||
name = 'XPipe Core'
|
||||
description = 'Core classes used by all XPipe components.'
|
||||
url = 'https://github.com/xpipe-io/xpipe/core'
|
||||
licenses {
|
||||
license {
|
||||
|
|
|
@ -10,7 +10,7 @@ import java.time.Instant;
|
|||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* A store that refers to another store in the X-Pipe storage.
|
||||
* A store that refers to another store in the XPipe storage.
|
||||
* The referenced store has to be resolved by the caller manually, as this class does not act as a resolver.
|
||||
*/
|
||||
@JsonTypeName("named")
|
||||
|
|
|
@ -7,11 +7,11 @@ import lombok.Value;
|
|||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Represents a reference to an X-Pipe data source.
|
||||
* Represents a reference to an XPipe data source.
|
||||
* Using {@link DataSourceReference} instances instead of {@link DataSourceId}
|
||||
* instances is mainly done for user convenience purposes.
|
||||
* <p>
|
||||
* While a {@link DataSourceId} represents a unique and canonical identifier for an X-Pipe data source,
|
||||
* While a {@link DataSourceId} represents a unique and canonical identifier for an XPipe data source,
|
||||
* there also exist easier and shorter ways to address a data source.
|
||||
* This convenience comes at the price of ambiguity and instability for other types of references.
|
||||
*/
|
||||
|
|
|
@ -91,7 +91,7 @@ public interface TableReadConnection extends DataSourceReadConnection {
|
|||
}
|
||||
|
||||
/**
|
||||
* Writes the rows to an OutputStream in the X-Pipe binary format.
|
||||
* Writes the rows to an OutputStream in the XPipe binary format.
|
||||
*/
|
||||
default void forwardRows(OutputStream out, int maxLines) throws Exception {
|
||||
if (maxLines == 0) {
|
||||
|
|
|
@ -67,7 +67,7 @@ public class JacksonMapper {
|
|||
}
|
||||
|
||||
/**
|
||||
* Constructs a new ObjectMapper that is able to map all required X-Pipe classes and also possible extensions.
|
||||
* Constructs a new ObjectMapper that is able to map all required XPipe classes and also possible extensions.
|
||||
*/
|
||||
public static ObjectMapper newMapper() {
|
||||
if (!JacksonMapper.isInit()) {
|
||||
|
|
|
@ -209,11 +209,11 @@ public class XPipeInstallation {
|
|||
String path = null;
|
||||
if (OsType.getLocal().equals(OsType.WINDOWS)) {
|
||||
var base = System.getenv("LOCALAPPDATA");
|
||||
path = FileNames.join(base, "X-Pipe");
|
||||
path = FileNames.join(base, "XPipe");
|
||||
} else if (OsType.getLocal().equals(OsType.LINUX)) {
|
||||
path = "/opt/xpipe";
|
||||
} else {
|
||||
path = "/Applications/X-Pipe.app";
|
||||
path = "/Applications/XPipe.app";
|
||||
}
|
||||
|
||||
return path;
|
||||
|
@ -231,11 +231,11 @@ public class XPipeInstallation {
|
|||
String path = null;
|
||||
if (p.getOsType().equals(OsType.WINDOWS)) {
|
||||
var base = p.executeSimpleStringCommand(p.getShellDialect().getPrintVariableCommand("LOCALAPPDATA"));
|
||||
path = FileNames.join(base, "X-Pipe");
|
||||
path = FileNames.join(base, "XPipe");
|
||||
} else if (p.getOsType().equals(OsType.LINUX)) {
|
||||
path = "/opt/xpipe";
|
||||
} else {
|
||||
path = "/Applications/X-Pipe.app";
|
||||
path = "/Applications/XPipe.app";
|
||||
}
|
||||
|
||||
return path;
|
||||
|
|
30
dist/base.gradle
vendored
30
dist/base.gradle
vendored
|
@ -142,54 +142,54 @@ if (org.gradle.internal.os.OperatingSystem.current().isWindows()) {
|
|||
doLast {
|
||||
copy {
|
||||
from "$distDir/jpackage/xpiped.app/Contents"
|
||||
into "$distDir/X-Pipe.app/Contents/"
|
||||
into "$distDir/XPipe.app/Contents/"
|
||||
}
|
||||
copy {
|
||||
from "$projectDir/logo/logo.icns"
|
||||
into "$distDir/X-Pipe.app/Contents/Resources/"
|
||||
into "$distDir/XPipe.app/Contents/Resources/"
|
||||
}
|
||||
copy {
|
||||
from "$distDir/cli/xpipe"
|
||||
into "$distDir/X-Pipe.app/Contents/MacOS/"
|
||||
into "$distDir/XPipe.app/Contents/MacOS/"
|
||||
}
|
||||
copy {
|
||||
from "$distDir/licenses"
|
||||
into "$distDir/X-Pipe.app/Contents/Resources/licenses"
|
||||
into "$distDir/XPipe.app/Contents/Resources/licenses"
|
||||
}
|
||||
copy {
|
||||
from "$distDir/docs/html5"
|
||||
into "$distDir/X-Pipe.app/Contents/Resources/cli/docs"
|
||||
into "$distDir/XPipe.app/Contents/Resources/cli/docs"
|
||||
}
|
||||
copy {
|
||||
from "$distDir/docs/manpage"
|
||||
into "$distDir/X-Pipe.app/Contents/Resources/cli/man"
|
||||
into "$distDir/XPipe.app/Contents/Resources/cli/man"
|
||||
}
|
||||
copy {
|
||||
from "$distDir/cli/xpipe_completion"
|
||||
into "$distDir/X-Pipe.app/Contents/Resources/cli/"
|
||||
into "$distDir/XPipe.app/Contents/Resources/cli/"
|
||||
}
|
||||
|
||||
copy {
|
||||
from "$projectDir/PkgInstaller/darwin/Resources/uninstall.sh"
|
||||
into "$distDir/X-Pipe.app/Contents/Resources/scripts/"
|
||||
into "$distDir/XPipe.app/Contents/Resources/scripts/"
|
||||
}
|
||||
file("$distDir/X-Pipe.app/Contents/Resources/scripts/uninstall.sh").text = file("$distDir/X-Pipe.app/Contents/Resources/scripts/uninstall.sh").text
|
||||
.replaceAll("__PRODUCT__", "X-Pipe")
|
||||
file("$distDir/XPipe.app/Contents/Resources/scripts/uninstall.sh").text = file("$distDir/XPipe.app/Contents/Resources/scripts/uninstall.sh").text
|
||||
.replaceAll("__PRODUCT__", "XPipe")
|
||||
.replaceAll("__VERSION__", version.toString())
|
||||
|
||||
def debugArguments = file("$projectDir/debug/debug_arguments.txt").text.lines().map(s -> '"' + s + '"').collect(Collectors.joining(
|
||||
' '))
|
||||
def debugAttachArguments = file("$projectDir/debug/mac/debug_attach_arguments.txt").text.lines().map(s -> '"' + s + '"').collect(
|
||||
Collectors.joining(' '))
|
||||
file("$distDir/X-Pipe.app/Contents/Resources/scripts").mkdirs()
|
||||
file("$distDir/X-Pipe.app/Contents/Resources/scripts/xpiped_debug.sh").text = file("$projectDir/debug/mac/xpiped_debug.sh").text.replace(
|
||||
file("$distDir/XPipe.app/Contents/Resources/scripts").mkdirs()
|
||||
file("$distDir/XPipe.app/Contents/Resources/scripts/xpiped_debug.sh").text = file("$projectDir/debug/mac/xpiped_debug.sh").text.replace(
|
||||
'JVM-ARGS',
|
||||
debugArguments)
|
||||
file("$distDir/X-Pipe.app/Contents/Resources/scripts/xpiped_debug.sh").executable = true
|
||||
file("$distDir/X-Pipe.app/Contents/Resources/scripts/xpiped_debug_attach.sh").text = file("$projectDir/debug/mac/xpiped_debug.sh").text.replace(
|
||||
file("$distDir/XPipe.app/Contents/Resources/scripts/xpiped_debug.sh").executable = true
|
||||
file("$distDir/XPipe.app/Contents/Resources/scripts/xpiped_debug_attach.sh").text = file("$projectDir/debug/mac/xpiped_debug.sh").text.replace(
|
||||
'JVM-ARGS',
|
||||
debugAttachArguments + ' ' + debugArguments)
|
||||
file("$distDir/X-Pipe.app/Contents/Resources/scripts/xpiped_debug_attach.sh").executable = true
|
||||
file("$distDir/XPipe.app/Contents/Resources/scripts/xpiped_debug_attach.sh").executable = true
|
||||
|
||||
if (System.getenv("MACOS_DEVELOPER_ID_APPLICATION_CERTIFICATE_NAME") != null) {
|
||||
exec {
|
||||
|
|
6
dist/jpackage.gradle
vendored
6
dist/jpackage.gradle
vendored
|
@ -13,7 +13,7 @@ def releaseArguments = distJvmArgs + [
|
|||
]
|
||||
|
||||
if (org.gradle.internal.os.OperatingSystem.current().isMacOsX()) {
|
||||
releaseArguments += '-Xdock:name=X-Pipe'
|
||||
releaseArguments += '-Xdock:name=XPipe'
|
||||
}
|
||||
|
||||
// To remove warnings, the plugin probably does not expect the JPackage tasks to be in a separate project
|
||||
|
@ -74,7 +74,7 @@ jlink {
|
|||
imageOptions += [
|
||||
'--mac-sign',
|
||||
'--mac-package-signing-prefix', 'io.xpipe.app',
|
||||
'--mac-package-name', "X-Pipe Desktop",
|
||||
'--mac-package-name', "XPipe Desktop",
|
||||
'--mac-app-category', 'productivity',
|
||||
// '--mac-entitlements', "$projectDir/misc/mac/Entitlements.plist"
|
||||
]
|
||||
|
@ -89,7 +89,7 @@ jlink {
|
|||
appVersion = modifiedVersion
|
||||
}
|
||||
skipInstaller = true
|
||||
applicationName = 'X-Pipe'
|
||||
applicationName = 'XPipe'
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ public class SampleAction implements ActionProvider {
|
|||
}
|
||||
|
||||
// Commands can also be more complex and span multiple lines.
|
||||
// In this case, X-Pipe will internally write a command to a script file and then execute the script
|
||||
// In this case, XPipe will internally write a command to a script file and then execute the script
|
||||
try (CommandControl cc = sc.command(
|
||||
"""
|
||||
VAR="value"
|
||||
|
@ -77,7 +77,7 @@ public class SampleAction implements ActionProvider {
|
|||
|
||||
// More customization options
|
||||
// If the command should be run as root, the command will be executed with
|
||||
// sudo and the optional sudo password automatically provided by X-Pipe
|
||||
// sudo and the optional sudo password automatically provided by XPipe
|
||||
// by using the information from the connection store.
|
||||
// You can also set a custom working directory.
|
||||
try (CommandControl cc = sc.command("kill <pid>").elevated().workingDirectory("/").start()) {
|
||||
|
|
|
@ -99,9 +99,9 @@ uninstall() {
|
|||
fi
|
||||
;;
|
||||
Darwin)
|
||||
if [ -d "/Applications/X-Pipe.app" ]; then
|
||||
if [ -d "/Applications/XPipe.app" ]; then
|
||||
info "Uninstalling previous version"
|
||||
sudo /Applications/X-Pipe.app/Contents/Resources/scripts/uninstall.sh
|
||||
sudo /Applications/XPipe.app/Contents/Resources/scripts/uninstall.sh
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
|
@ -165,7 +165,7 @@ check_architecture() {
|
|||
;;
|
||||
esac
|
||||
|
||||
error "Sorry! X-Pipe currently does not provide your processor architecture."
|
||||
error "Sorry! XPipe currently does not provide your processor architecture."
|
||||
return 1
|
||||
}
|
||||
|
||||
|
@ -180,7 +180,7 @@ download_archive="$(
|
|||
)"
|
||||
exit_status="$?"
|
||||
if [ "$exit_status" != 0 ]; then
|
||||
error "Could not download X-Pipe release."
|
||||
error "Could not download XPipe release."
|
||||
exit "$exit_status"
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
## Gradle Scripts
|
||||
|
||||
This directory contains helper scripts and Java module generation rules for dependencies used by various X-Pipe gradle projects.
|
||||
This directory contains helper scripts and Java module generation rules for dependencies used by various XPipe gradle projects.
|
||||
It also contains various other types of shared build script components that are useful.
|
||||
|
||||
As the [jlink](https://docs.oracle.com/en/java/javase/17/docs/specs/man/jlink.html) tool
|
||||
|
|
|
@ -34,7 +34,7 @@ test {
|
|||
// Use cmd window for tests
|
||||
if (!rootProject.ci && DefaultNativePlatform.currentOperatingSystem.isWindows()) {
|
||||
systemProperty "io.xpipe.beacon.customDaemonCommand",
|
||||
"cmd.exe /c start \"\"X-Pipe Debug\"\" /i \"$rootDir\\gradlew.bat\" --console=plain $daemonCommand"
|
||||
"cmd.exe /c start \"\"XPipe Debug\"\" /i \"$rootDir\\gradlew.bat\" --console=plain $daemonCommand"
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue