return doEncryptPassword(context);
}
System.setProperty(MavenSystem.MAVEN_HOME, vars.get(SHELL_HOME, File.class).getAbsolutePath());
MavenRuntimeConfiguration config = new MavenRuntimeConfiguration();
config.setBaseDirectory(vars.get(SHELL_USER_DIR, File.class));
if (file != null) {
config.setPomFile(file);
}
if (profiles != null) {
config.getProfiles().addAll(profiles);
}
if (quiet != null) {
config.setQuiet(quiet);
}
if (debug != null) {
config.setDebug(debug);
}
if (showVersion != null) {
config.setShowVersion(showVersion);
}
if (props != null) {
config.getProperties().putAll(props);
}
if (settingsFile != null) {
config.setSettingsFile(settingsFile);
}
if (globalSettingsFile != null) {
config.setGlobalSettingsFile(globalSettingsFile);
}
if (logFile != null) {
config.setLogFile(logFile);
}
customize(config);
MavenRuntime runtime = maven.create(config);
MavenExecutionRequest request = runtime.create();
if (offline != null) {
request.setOffline(offline);
}
if (goals != null) {
request.setGoals(goals);
}
if (batch != null) {
request.setInteractiveMode(!batch);
}
if (resumeFrom != null) {
request.setResumeFrom(resumeFrom);
}
if (toolChainsFile != null) {
request.setUserToolchainsFile(toolChainsFile);
}
if (showErrors != null) {
request.setShowErrors(showErrors);
}
if (nonRecursive != null) {
request.setRecursive(!nonRecursive);
}
if (updateSnapshots != null) {
request.setUpdateSnapshots(updateSnapshots);
}
if (noSnapshotUpdates != null) {
request.setNoSnapshotUpdates(noSnapshotUpdates);
}
if (selectedProjects != null) {
request.setSelectedProjects(selectedProjects);
}
if (strictChecksums) {
request.setGlobalChecksumPolicy(CHECKSUM_POLICY_FAIL);
}
if (laxChecksums) {
request.setGlobalChecksumPolicy(CHECKSUM_POLICY_WARN);
}
if (failFast) {
request.setReactorFailureBehavior(REACTOR_FAIL_FAST);
}
else if (failAtEnd) {
request.setReactorFailureBehavior(REACTOR_FAIL_AT_END);
}
else if (failNever) {
request.setReactorFailureBehavior(REACTOR_FAIL_NEVER);
}
if (alsoMake && !alsoMakeDependents) {
request.setMakeBehavior(REACTOR_MAKE_UPSTREAM);
}
else if (!alsoMake && alsoMakeDependents) {
request.setMakeBehavior(REACTOR_MAKE_DOWNSTREAM);
}
else if (alsoMake && alsoMakeDependents) {
request.setMakeBehavior(REACTOR_MAKE_BOTH);
}
// Customize the plugin groups
request.addPluginGroup("org.apache.maven.plugins");
request.addPluginGroup("org.codehaus.mojo");
request.addPluginGroup("com.sonatype.maven.plugins");
request.addPluginGroup("org.sonatype.maven.plugins");
// Setup output colorization
StreamSet current = StreamJack.current();
StreamSet streams;
if (color == null || color) {
// Complain if the user asked for color and its not supported
if (color != null && !io.getTerminal().isAnsiSupported()) {
log.warn("ANSI color is not supported by the current terminal");
}
streams = new StreamSet(current.in, new ColorizingStream(current.out), new ColorizingStream(current.err));
}
else {
streams = current;
}
config.setStreams(streams);
StreamJack.register(streams);
// Execute Maven
int result = 0;