private static boolean accurevLogin(//
final AccurevServer server, //
final Map<String, String> accurevEnv, //
final FilePath workspace, //
final TaskListener listener, //
final Launcher launcher) throws IOException, InterruptedException {
listener.getLogger().println("Authenticating with Accurev server...");
final ArgumentListBuilder cmd = new ArgumentListBuilder();
cmd.add("login");
addServer(cmd, server);
if (server.isUseNonexpiringLogin()) {
cmd.add("-n");
}
cmd.add(server.getUsername());
if (StringUtils.isEmpty(server.getPassword())) {
Computer c = Computer.currentComputer();
if (c == null) {
Jenkins h = Jenkins.getInstance();
c = h.getComputer("");
}
if (c != null && c.isUnix()) {
cmd.add("", false);
} else {
cmd.addQuoted("", false);
}
} else {
cmd.add(server.getPassword(), true);
}
logger.info(cmd.toString());
logger.info(cmd.toStringWithQuote());
final boolean success = AccurevLauncher.runCommand("login", launcher, cmd, null, accurevEnv, workspace, listener, logger);
if (success) {
listener.getLogger().println("Authentication completed successfully.");
return true;
} else {
return false;
}
}