]> nmode's Git Repositories - signal-cli/commitdiff
Make config path configurable
authorAsamK <asamk@gmx.de>
Thu, 31 Dec 2015 14:39:40 +0000 (15:39 +0100)
committerAsamK <asamk@gmx.de>
Thu, 31 Dec 2015 15:16:18 +0000 (16:16 +0100)
data/textsecure-cli@.service
data/textsecure.service
src/main/java/org/asamk/textsecure/Main.java
src/main/java/org/asamk/textsecure/Manager.java

index b8221bc26f3fc15df6792072a1651cfdb4247352..002d347b96f6924d9d2bdfab504a455c495ada48 100644 (file)
@@ -7,7 +7,7 @@ After=network.target
 
 [Service]
 Type=dbus
 
 [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
 
 User=textsecure-cli
 BusName=org.asamk.TextSecure
 
index abdb076719cf5d779a668e0729ca481b487952aa..b40debcb0b9d8a16840f8a34332f4b59298f27f1 100644 (file)
@@ -3,7 +3,7 @@ Description=Send secure messages to TextSecure/Signal clients
 
 [Service]
 Type=dbus
 
 [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
 
 User=textsecure-cli
 BusName=org.asamk.TextSecure
 
index 8a252b99c8d3a71d3afcdd755c4464246e66b5c9..4227e65ede663a3796964f7b3c3d5fcd8f4b7368 100644 (file)
@@ -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 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;
 import org.asamk.TextSecure;
 import org.freedesktop.dbus.DBusConnection;
 import org.freedesktop.dbus.exceptions.DBusException;
@@ -79,7 +80,12 @@ public class Main {
                     return;
                 }
             } else {
                     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 {
                 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("-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")
 
         MutuallyExclusiveGroup mut = parser.addMutuallyExclusiveGroup();
         mut.addArgument("-u", "--username")
index 2a2b5e4f3591473d984cdd50e1d76764b7cb5358..e5a77dcd6425aba7a7bd322b5e71305067551014 100644 (file)
@@ -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;
 
     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;
 
     private final ObjectMapper jsonProcessot = new ObjectMapper();
     private String username;
@@ -76,8 +76,12 @@ class Manager implements TextSecure {
     private TextSecureAccountManager accountManager;
     private JsonGroupStore groupStore;
 
     private TextSecureAccountManager accountManager;
     private JsonGroupStore groupStore;
 
-    public Manager(String username) {
+    public Manager(String username, String settingsPath) {
         this.username = username;
         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);
         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);