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:
|
||||
|
||||
$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/
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ Options
|
|||
*--config* CONFIG::
|
||||
Set the path, where to store the config.
|
||||
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::
|
||||
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
|
||||
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/
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ import org.asamk.Signal;
|
|||
import org.asamk.signal.commands.*;
|
||||
import org.asamk.signal.manager.BaseConfig;
|
||||
import org.asamk.signal.manager.Manager;
|
||||
import org.asamk.signal.util.IOUtils;
|
||||
import org.asamk.signal.util.SecurityProvider;
|
||||
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
||||
import org.freedesktop.dbus.DBusConnection;
|
||||
|
@ -80,18 +81,12 @@ public class Main {
|
|||
return 3;
|
||||
}
|
||||
} else {
|
||||
String settingsPath = ns.getString("config");
|
||||
if (TextUtils.isEmpty(settingsPath)) {
|
||||
settingsPath = System.getProperty("user.home") + "/.config/signal";
|
||||
if (!new File(settingsPath).exists()) {
|
||||
String legacySettingsPath = System.getProperty("user.home") + "/.config/textsecure";
|
||||
if (new File(legacySettingsPath).exists()) {
|
||||
settingsPath = legacySettingsPath;
|
||||
}
|
||||
}
|
||||
String dataPath = ns.getString("config");
|
||||
if (TextUtils.isEmpty(dataPath)) {
|
||||
dataPath = getDefaultDataPath();
|
||||
}
|
||||
|
||||
m = new Manager(username, settingsPath);
|
||||
m = new Manager(username, dataPath);
|
||||
ts = m;
|
||||
try {
|
||||
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) {
|
||||
ArgumentParser parser = ArgumentParsers.newFor("signal-cli")
|
||||
.build()
|
||||
|
@ -145,7 +166,7 @@ public class Main {
|
|||
.help("Show package version.")
|
||||
.action(Arguments.version());
|
||||
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();
|
||||
mut.addArgument("-u", "--username")
|
||||
|
|
|
@ -57,4 +57,13 @@ public class IOUtils {
|
|||
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