mirror of
https://github.com/AsamK/signal-cli
synced 2025-08-29 10:30:38 +00:00
Change default data path to $XDG_DATA_HOME/signal-cli
Closes #152 and #125
This commit is contained in:
parent
ffbc356218
commit
337f84ed21
4 changed files with 50 additions and 16 deletions
|
@ -53,9 +53,11 @@ For more information read the [man page](https://github.com/AsamK/signal-cli/blo
|
||||||
|
|
||||||
The password and cryptographic keys are created when registering and stored in the current users home directory:
|
The password and cryptographic keys are created when registering and stored in the current users home directory:
|
||||||
|
|
||||||
$HOME/.config/signal/data/
|
`$XDG_DATA_HOME/signal-cli/data/` (`$HOME/.local/share/signal-cli/data/`)
|
||||||
|
|
||||||
For legacy users, the old config directory is used as a fallback:
|
For legacy users, the old config directories are used as a fallback:
|
||||||
|
|
||||||
|
$HOME/.config/signal/data/
|
||||||
|
|
||||||
$HOME/.config/textsecure/data/
|
$HOME/.config/textsecure/data/
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ Options
|
||||||
*--config* CONFIG::
|
*--config* CONFIG::
|
||||||
Set the path, where to store the config.
|
Set the path, where to store the config.
|
||||||
Make sure you have full read/write access to the given directory.
|
Make sure you have full read/write access to the given directory.
|
||||||
(Default: $HOME/.config/signal)
|
(Default: `$XDG_DATA_HOME/signal-cli` (`$HOME/.local/share/signal-cli`))
|
||||||
|
|
||||||
*-u* USERNAME, *--username* USERNAME::
|
*-u* USERNAME, *--username* USERNAME::
|
||||||
Specify your phone number, that will be your identifier.
|
Specify your phone number, that will be your identifier.
|
||||||
|
@ -259,9 +259,11 @@ Files
|
||||||
The password and cryptographic keys are created when registering and stored in the
|
The password and cryptographic keys are created when registering and stored in the
|
||||||
current users home directory, the directory can be changed with *--config*:
|
current users home directory, the directory can be changed with *--config*:
|
||||||
|
|
||||||
$HOME/.config/signal/
|
`$XDG_DATA_HOME/signal-cli/` (`$HOME/.local/share/signal-cli/`)
|
||||||
|
|
||||||
For legacy users, the old config directory is used as a fallback:
|
For legacy users, the old config directories are used as a fallback:
|
||||||
|
|
||||||
|
$HOME/.config/signal/
|
||||||
|
|
||||||
$HOME/.config/textsecure/
|
$HOME/.config/textsecure/
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ import org.asamk.Signal;
|
||||||
import org.asamk.signal.commands.*;
|
import org.asamk.signal.commands.*;
|
||||||
import org.asamk.signal.manager.BaseConfig;
|
import org.asamk.signal.manager.BaseConfig;
|
||||||
import org.asamk.signal.manager.Manager;
|
import org.asamk.signal.manager.Manager;
|
||||||
|
import org.asamk.signal.util.IOUtils;
|
||||||
import org.asamk.signal.util.SecurityProvider;
|
import org.asamk.signal.util.SecurityProvider;
|
||||||
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
||||||
import org.freedesktop.dbus.DBusConnection;
|
import org.freedesktop.dbus.DBusConnection;
|
||||||
|
@ -80,18 +81,12 @@ public class Main {
|
||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
String settingsPath = ns.getString("config");
|
String dataPath = ns.getString("config");
|
||||||
if (TextUtils.isEmpty(settingsPath)) {
|
if (TextUtils.isEmpty(dataPath)) {
|
||||||
settingsPath = System.getProperty("user.home") + "/.config/signal";
|
dataPath = getDefaultDataPath();
|
||||||
if (!new File(settingsPath).exists()) {
|
|
||||||
String legacySettingsPath = System.getProperty("user.home") + "/.config/textsecure";
|
|
||||||
if (new File(legacySettingsPath).exists()) {
|
|
||||||
settingsPath = legacySettingsPath;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m = new Manager(username, settingsPath);
|
m = new Manager(username, dataPath);
|
||||||
ts = m;
|
ts = m;
|
||||||
try {
|
try {
|
||||||
m.init();
|
m.init();
|
||||||
|
@ -134,6 +129,32 @@ public class Main {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Uses $XDG_DATA_HOME/signal-cli if it exists, or if none of the legacy directories exist:
|
||||||
|
* - $HOME/.config/signal
|
||||||
|
* - $HOME/.config/textsecure
|
||||||
|
*
|
||||||
|
* @return the data directory to be used by signal-cli.
|
||||||
|
*/
|
||||||
|
private static String getDefaultDataPath() {
|
||||||
|
String dataPath = IOUtils.getDataHomeDir() + "/signal-cli";
|
||||||
|
if (new File(dataPath).exists()) {
|
||||||
|
return dataPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
String legacySettingsPath = System.getProperty("user.home") + "/.config/signal";
|
||||||
|
if (new File(legacySettingsPath).exists()) {
|
||||||
|
return legacySettingsPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
legacySettingsPath = System.getProperty("user.home") + "/.config/textsecure";
|
||||||
|
if (new File(legacySettingsPath).exists()) {
|
||||||
|
return legacySettingsPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
return dataPath;
|
||||||
|
}
|
||||||
|
|
||||||
private static Namespace parseArgs(String[] args) {
|
private static Namespace parseArgs(String[] args) {
|
||||||
ArgumentParser parser = ArgumentParsers.newFor("signal-cli")
|
ArgumentParser parser = ArgumentParsers.newFor("signal-cli")
|
||||||
.build()
|
.build()
|
||||||
|
@ -145,7 +166,7 @@ public class Main {
|
||||||
.help("Show package version.")
|
.help("Show package version.")
|
||||||
.action(Arguments.version());
|
.action(Arguments.version());
|
||||||
parser.addArgument("--config")
|
parser.addArgument("--config")
|
||||||
.help("Set the path, where to store the config (Default: $HOME/.config/signal).");
|
.help("Set the path, where to store the config (Default: $XDG_DATA_HOME/signal-cli , $HOME/.local/share/signal-cli).");
|
||||||
|
|
||||||
MutuallyExclusiveGroup mut = parser.addMutuallyExclusiveGroup();
|
MutuallyExclusiveGroup mut = parser.addMutuallyExclusiveGroup();
|
||||||
mut.addArgument("-u", "--username")
|
mut.addArgument("-u", "--username")
|
||||||
|
|
|
@ -57,4 +57,13 @@ public class IOUtils {
|
||||||
Files.createFile(file);
|
Files.createFile(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getDataHomeDir() {
|
||||||
|
String dataHome = System.getenv("XDG_DATA_HOME");
|
||||||
|
if (dataHome != null) {
|
||||||
|
return dataHome;
|
||||||
|
}
|
||||||
|
|
||||||
|
return System.getProperty("user.home") + "/.local/share";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue