: new PlainTextWriterImpl(System.out);
var commandKey = ns.getString("command");
- var command = Commands.getCommand(commandKey, outputWriter);
+ var command = Commands.getCommand(commandKey);
if (command == null) {
throw new UserErrorException("Command not implemented!");
}
final var useDbusSystem = ns.getBoolean("dbus-system");
if (useDbus || useDbusSystem) {
// If username is null, it will connect to the default object path
- initDbusClient(command, username, useDbusSystem);
+ initDbusClient(command, username, useDbusSystem, outputWriter);
return;
}
throw new UserErrorException("You cannot specify a username (phone number) when linking");
}
- handleProvisioningCommand((ProvisioningCommand) command, dataPath, serviceEnvironment);
+ handleProvisioningCommand((ProvisioningCommand) command, dataPath, serviceEnvironment, outputWriter);
return;
}
var usernames = Manager.getAllLocalUsernames(dataPath);
if (command instanceof MultiLocalCommand) {
- handleMultiLocalCommand((MultiLocalCommand) command, dataPath, serviceEnvironment, usernames);
+ handleMultiLocalCommand((MultiLocalCommand) command,
+ dataPath,
+ serviceEnvironment,
+ usernames,
+ outputWriter);
return;
}
throw new UserErrorException("Command only works via dbus");
}
- handleLocalCommand((LocalCommand) command, username, dataPath, serviceEnvironment);
+ handleLocalCommand((LocalCommand) command, username, dataPath, serviceEnvironment, outputWriter);
}
private void handleProvisioningCommand(
- final ProvisioningCommand command, final File dataPath, final ServiceEnvironment serviceEnvironment
+ final ProvisioningCommand command,
+ final File dataPath,
+ final ServiceEnvironment serviceEnvironment,
+ final OutputWriter outputWriter
) throws CommandException {
var pm = ProvisioningManager.init(dataPath, serviceEnvironment, BaseConfig.USER_AGENT);
- command.handleCommand(ns, pm);
+ command.handleCommand(ns, pm, outputWriter);
}
private void handleRegistrationCommand(
final LocalCommand command,
final String username,
final File dataPath,
- final ServiceEnvironment serviceEnvironment
+ final ServiceEnvironment serviceEnvironment,
+ final OutputWriter outputWriter
) throws CommandException {
try (var m = loadManager(username, dataPath, serviceEnvironment)) {
- command.handleCommand(ns, m);
+ command.handleCommand(ns, m, outputWriter);
} catch (IOException e) {
logger.warn("Cleanup failed", e);
}
final MultiLocalCommand command,
final File dataPath,
final ServiceEnvironment serviceEnvironment,
- final List<String> usernames
+ final List<String> usernames,
+ final OutputWriter outputWriter
) throws CommandException {
final var managers = new ArrayList<Manager>();
for (String u : usernames) {
public RegistrationManager getNewRegistrationManager(String username) throws IOException {
return RegistrationManager.init(username, dataPath, serviceEnvironment, BaseConfig.USER_AGENT);
}
- });
+ }, outputWriter);
for (var m : managers) {
try {
}
private void initDbusClient(
- final Command command, final String username, final boolean systemBus
+ final Command command, final String username, final boolean systemBus, final OutputWriter outputWriter
) throws CommandException {
try {
DBusConnection.DBusBusType busType;
DbusConfig.getObjectPath(username),
Signal.class);
- handleCommand(command, ts, dBusConn);
+ handleCommand(command, ts, dBusConn, outputWriter);
}
} catch (DBusException | IOException e) {
logger.error("Dbus client failed", e);
}
}
- private void handleCommand(Command command, Signal ts, DBusConnection dBusConn) throws CommandException {
+ private void handleCommand(
+ Command command, Signal ts, DBusConnection dBusConn, OutputWriter outputWriter
+ ) throws CommandException {
if (command instanceof ExtendedDbusCommand) {
- ((ExtendedDbusCommand) command).handleCommand(ns, ts, dBusConn);
+ ((ExtendedDbusCommand) command).handleCommand(ns, ts, dBusConn, outputWriter);
} else if (command instanceof DbusCommand) {
- ((DbusCommand) command).handleCommand(ns, ts);
+ ((DbusCommand) command).handleCommand(ns, ts, outputWriter);
} else {
throw new UserErrorException("Command is not yet implemented via dbus");
}