mirror of
https://github.com/AsamK/signal-cli
synced 2025-09-01 20:10:39 +00:00
Configure dbus name via commandline parameter
This commit is contained in:
parent
24714454dd
commit
a9e4b8ba98
3 changed files with 36 additions and 8 deletions
|
@ -2,6 +2,25 @@ package org.asamk.signal;
|
||||||
|
|
||||||
public class DbusConfig {
|
public class DbusConfig {
|
||||||
|
|
||||||
public static final String SIGNAL_BUSNAME = "org.asamk.Signal";
|
public DbusConfig() {
|
||||||
public static final String SIGNAL_OBJECTPATH = "/org/asamk/Signal";
|
}
|
||||||
|
|
||||||
|
public String signalBusName = "org.asamk.Signal";
|
||||||
|
public String signalObjectPath = "/org/asamk/Signal";
|
||||||
|
|
||||||
|
public void setName(String busName) {
|
||||||
|
DbusConfig.this.signalBusName = busName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return DbusConfig.this.signalBusName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setObjectPath(String objectPath) {
|
||||||
|
DbusConfig.this.signalObjectPath = objectPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getObjectPath() {
|
||||||
|
return DbusConfig.this.signalObjectPath;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import net.sourceforge.argparse4j.ArgumentParsers;
|
||||||
import net.sourceforge.argparse4j.impl.Arguments;
|
import net.sourceforge.argparse4j.impl.Arguments;
|
||||||
import net.sourceforge.argparse4j.inf.*;
|
import net.sourceforge.argparse4j.inf.*;
|
||||||
import org.asamk.Signal;
|
import org.asamk.Signal;
|
||||||
|
import org.asamk.signal.DbusConfig;
|
||||||
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;
|
||||||
|
@ -57,6 +58,9 @@ public class Main {
|
||||||
Manager m;
|
Manager m;
|
||||||
Signal ts;
|
Signal ts;
|
||||||
DBusConnection dBusConn = null;
|
DBusConnection dBusConn = null;
|
||||||
|
DbusConfig dbc = new DbusConfig();
|
||||||
|
if (!isEmpty(ns.getString("busname")))
|
||||||
|
dbc.setName(ns.getString("busname"));
|
||||||
try {
|
try {
|
||||||
if (ns.getBoolean("dbus") || ns.getBoolean("dbus_system")) {
|
if (ns.getBoolean("dbus") || ns.getBoolean("dbus_system")) {
|
||||||
try {
|
try {
|
||||||
|
@ -69,7 +73,7 @@ public class Main {
|
||||||
}
|
}
|
||||||
dBusConn = DBusConnection.getConnection(busType);
|
dBusConn = DBusConnection.getConnection(busType);
|
||||||
ts = dBusConn.getRemoteObject(
|
ts = dBusConn.getRemoteObject(
|
||||||
DbusConfig.SIGNAL_BUSNAME, DbusConfig.SIGNAL_OBJECTPATH,
|
dbc.getName(), dbc.getObjectPath(),
|
||||||
Signal.class);
|
Signal.class);
|
||||||
} catch (UnsatisfiedLinkError e) {
|
} catch (UnsatisfiedLinkError e) {
|
||||||
System.err.println("Missing native library dependency for dbus service: " + e.getMessage());
|
System.err.println("Missing native library dependency for dbus service: " + e.getMessage());
|
||||||
|
@ -168,6 +172,8 @@ public class Main {
|
||||||
.action(Arguments.version());
|
.action(Arguments.version());
|
||||||
parser.addArgument("--config")
|
parser.addArgument("--config")
|
||||||
.help("Set the path, where to store the config (Default: $XDG_DATA_HOME/signal-cli , $HOME/.local/share/signal-cli).");
|
.help("Set the path, where to store the config (Default: $XDG_DATA_HOME/signal-cli , $HOME/.local/share/signal-cli).");
|
||||||
|
parser.addArgument("--busname")
|
||||||
|
.help("Specify the dbus name, that will be used for communication (Default: org.asamk.Signal).");
|
||||||
|
|
||||||
MutuallyExclusiveGroup mut = parser.addMutuallyExclusiveGroup();
|
MutuallyExclusiveGroup mut = parser.addMutuallyExclusiveGroup();
|
||||||
mut.addArgument("-u", "--username")
|
mut.addArgument("-u", "--username")
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.asamk.signal.commands;
|
||||||
import net.sourceforge.argparse4j.impl.Arguments;
|
import net.sourceforge.argparse4j.impl.Arguments;
|
||||||
import net.sourceforge.argparse4j.inf.Namespace;
|
import net.sourceforge.argparse4j.inf.Namespace;
|
||||||
import net.sourceforge.argparse4j.inf.Subparser;
|
import net.sourceforge.argparse4j.inf.Subparser;
|
||||||
|
import org.asamk.signal.DbusConfig;
|
||||||
import org.asamk.signal.DbusReceiveMessageHandler;
|
import org.asamk.signal.DbusReceiveMessageHandler;
|
||||||
import org.asamk.signal.JsonDbusReceiveMessageHandler;
|
import org.asamk.signal.JsonDbusReceiveMessageHandler;
|
||||||
import org.asamk.signal.manager.Manager;
|
import org.asamk.signal.manager.Manager;
|
||||||
|
@ -12,9 +13,8 @@ import org.freedesktop.dbus.exceptions.DBusException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import static org.asamk.signal.DbusConfig.SIGNAL_BUSNAME;
|
|
||||||
import static org.asamk.signal.DbusConfig.SIGNAL_OBJECTPATH;
|
|
||||||
import static org.asamk.signal.util.ErrorUtils.handleAssertionError;
|
import static org.asamk.signal.util.ErrorUtils.handleAssertionError;
|
||||||
|
import static org.whispersystems.signalservice.internal.util.Util.isEmpty;
|
||||||
|
|
||||||
public class DaemonCommand implements LocalCommand {
|
public class DaemonCommand implements LocalCommand {
|
||||||
|
|
||||||
|
@ -37,6 +37,9 @@ public class DaemonCommand implements LocalCommand {
|
||||||
System.err.println("User is not registered.");
|
System.err.println("User is not registered.");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
DbusConfig dbc = new DbusConfig();
|
||||||
|
if (!isEmpty(ns.getString("busname")))
|
||||||
|
dbc.setName(ns.getString("busname"));
|
||||||
DBusConnection conn = null;
|
DBusConnection conn = null;
|
||||||
try {
|
try {
|
||||||
try {
|
try {
|
||||||
|
@ -47,8 +50,8 @@ public class DaemonCommand implements LocalCommand {
|
||||||
busType = DBusConnection.SESSION;
|
busType = DBusConnection.SESSION;
|
||||||
}
|
}
|
||||||
conn = DBusConnection.getConnection(busType);
|
conn = DBusConnection.getConnection(busType);
|
||||||
conn.exportObject(SIGNAL_OBJECTPATH, m);
|
conn.exportObject(dbc.getObjectPath(), m);
|
||||||
conn.requestBusName(SIGNAL_BUSNAME);
|
conn.requestBusName(dbc.getName());
|
||||||
} catch (UnsatisfiedLinkError e) {
|
} catch (UnsatisfiedLinkError e) {
|
||||||
System.err.println("Missing native library dependency for dbus service: " + e.getMessage());
|
System.err.println("Missing native library dependency for dbus service: " + e.getMessage());
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -58,7 +61,7 @@ public class DaemonCommand implements LocalCommand {
|
||||||
}
|
}
|
||||||
boolean ignoreAttachments = ns.getBoolean("ignore_attachments");
|
boolean ignoreAttachments = ns.getBoolean("ignore_attachments");
|
||||||
try {
|
try {
|
||||||
m.receiveMessages(1, TimeUnit.HOURS, false, ignoreAttachments, ns.getBoolean("json") ? new JsonDbusReceiveMessageHandler(m, conn, SIGNAL_OBJECTPATH) : new DbusReceiveMessageHandler(m, conn, SIGNAL_OBJECTPATH));
|
m.receiveMessages(1, TimeUnit.HOURS, false, ignoreAttachments, ns.getBoolean("json") ? new JsonDbusReceiveMessageHandler(m, conn, dbc.getObjectPath()) : new DbusReceiveMessageHandler(m, conn, dbc.getObjectPath()));
|
||||||
return 0;
|
return 0;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.err.println("Error while receiving messages: " + e.getMessage());
|
System.err.println("Error while receiving messages: " + e.getMessage());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue