]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/textsecure/Main.java
Make config path configurable
[signal-cli] / src / main / java / org / asamk / textsecure / Main.java
index 2e694ffdebe1a94fe07897bc969031f40ae8fdbf..4227e65ede663a3796964f7b3c3d5fcd8f4b7368 100644 (file)
@@ -20,9 +20,11 @@ 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;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
 import org.whispersystems.textsecure.api.crypto.UntrustedIdentityException;
 import org.whispersystems.textsecure.api.messages.*;
 import org.whispersystems.textsecure.api.messages.multidevice.TextSecureSyncMessage;
@@ -78,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 {
@@ -147,6 +154,8 @@ public class Main {
                             handleEncapsulatedExceptions(e);
                         } catch (AssertionError e) {
                             handleAssertionError(e);
+                        } catch (DBusExecutionException e) {
+                            handleDBusExecutionException(e);
                         }
                     } else {
                         String messageText = ns.getString("message");
@@ -183,6 +192,8 @@ public class Main {
                             System.err.println("Failed to add attachment: " + e.getMessage());
                             System.err.println("Aborting sending.");
                             System.exit(1);
+                        } catch (DBusExecutionException e) {
+                            handleDBusExecutionException(e);
                         }
                     }
 
@@ -324,6 +335,12 @@ public class Main {
         System.exit(1);
     }
 
+    private static void handleDBusExecutionException(DBusExecutionException e) {
+        System.err.println("Cannot connect to dbus: " + e.getMessage());
+        System.err.println("Aborting.");
+        System.exit(1);
+    }
+
     private static byte[] decodeGroupId(String groupId) {
         try {
             return Base64.decode(groupId);
@@ -344,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")