From 0130585355b82eb10f8d8e836182d9877aa21ab8 Mon Sep 17 00:00:00 2001 From: AsamK Date: Thu, 31 Dec 2015 15:39:40 +0100 Subject: [PATCH] Make config path configurable --- data/textsecure-cli@.service | 2 +- data/textsecure.service | 2 +- src/main/java/org/asamk/textsecure/Main.java | 10 +++++++++- src/main/java/org/asamk/textsecure/Manager.java | 12 ++++++++---- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/data/textsecure-cli@.service b/data/textsecure-cli@.service index b8221bc2..002d347b 100644 --- a/data/textsecure-cli@.service +++ b/data/textsecure-cli@.service @@ -7,7 +7,7 @@ After=network.target [Service] Type=dbus -ExecStart=%dir%/bin/textsecure-cli -u %I daemon --system +ExecStart=%dir%/bin/textsecure-cli -u %I --config /var/lib/textsecure-cli daemon --system User=textsecure-cli BusName=org.asamk.TextSecure diff --git a/data/textsecure.service b/data/textsecure.service index abdb0767..b40debcb 100644 --- a/data/textsecure.service +++ b/data/textsecure.service @@ -3,7 +3,7 @@ Description=Send secure messages to TextSecure/Signal clients [Service] Type=dbus -ExecStart=%dir%/bin/textsecure-cli -u %number% daemon --system +ExecStart=%dir%/bin/textsecure-cli -u %number% --config /var/lib/textsecure-cli daemon --system User=textsecure-cli BusName=org.asamk.TextSecure diff --git a/src/main/java/org/asamk/textsecure/Main.java b/src/main/java/org/asamk/textsecure/Main.java index 8a252b99..4227e65e 100644 --- a/src/main/java/org/asamk/textsecure/Main.java +++ b/src/main/java/org/asamk/textsecure/Main.java @@ -20,6 +20,7 @@ import net.sourceforge.argparse4j.ArgumentParsers; import net.sourceforge.argparse4j.impl.Arguments; import net.sourceforge.argparse4j.inf.*; import org.apache.commons.io.IOUtils; +import org.apache.http.util.TextUtils; import org.asamk.TextSecure; import org.freedesktop.dbus.DBusConnection; import org.freedesktop.dbus.exceptions.DBusException; @@ -79,7 +80,12 @@ public class Main { return; } } else { - m = new Manager(username); + String settingsPath = ns.getString("config"); + if (TextUtils.isEmpty(settingsPath)) { + settingsPath = System.getProperty("user.home") + "/.config/textsecure"; + } + + m = new Manager(username, settingsPath); ts = m; if (m.userExists()) { try { @@ -355,6 +361,8 @@ public class Main { parser.addArgument("-v", "--version") .help("Show package version.") .action(Arguments.version()); + parser.addArgument("--config") + .help("Set the path, where to store the config (Default: $HOME/.config/textsecure-cli)."); MutuallyExclusiveGroup mut = parser.addMutuallyExclusiveGroup(); mut.addArgument("-u", "--username") diff --git a/src/main/java/org/asamk/textsecure/Manager.java b/src/main/java/org/asamk/textsecure/Manager.java index 2a2b5e4f..e5a77dcd 100644 --- a/src/main/java/org/asamk/textsecure/Manager.java +++ b/src/main/java/org/asamk/textsecure/Manager.java @@ -59,9 +59,9 @@ class Manager implements TextSecure { public final static String PROJECT_VERSION = Manager.class.getPackage().getImplementationVersion(); private final static String USER_AGENT = PROJECT_NAME + " " + PROJECT_VERSION; - private final static String settingsPath = System.getProperty("user.home") + "/.config/textsecure"; - private final static String dataPath = settingsPath + "/data"; - private final static String attachmentsPath = settingsPath + "/attachments"; + private final String settingsPath; + private final String dataPath; + private final String attachmentsPath; private final ObjectMapper jsonProcessot = new ObjectMapper(); private String username; @@ -76,8 +76,12 @@ class Manager implements TextSecure { private TextSecureAccountManager accountManager; private JsonGroupStore groupStore; - public Manager(String username) { + public Manager(String username, String settingsPath) { this.username = username; + this.settingsPath = settingsPath; + this.dataPath = this.settingsPath + "/data"; + this.attachmentsPath = this.settingsPath + "/attachments"; + jsonProcessot.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE); // disable autodetect jsonProcessot.enable(SerializationFeature.INDENT_OUTPUT); // for pretty print, you can disable it. jsonProcessot.enable(SerializationFeature.WRITE_NULL_MAP_VALUES); -- 2.50.1