[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
[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
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;
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 {
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")
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 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);