Fix passing options, fixes #515 (#520)

This commit is contained in:
Guillaume Nodet
2021-12-06 16:18:22 +01:00
committed by GitHub
parent 9c1b8aee0c
commit a886562a65
3 changed files with 120 additions and 13 deletions

View File

@@ -31,6 +31,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.internal.CLibrary;
@@ -235,22 +236,19 @@ public class DefaultClient implements Client {
return DefaultResult.success(argv);
}
Environment.MVND_THREADS.removeCommandLineOption(args);
Environment.MVND_THREADS.addCommandLineOption(args, parameters.threads());
Optional<String> threads = Optional.ofNullable(Environment.MVND_THREADS.removeCommandLineOption(args));
Environment.MVND_THREADS.addCommandLineOption(args, threads.orElseGet(parameters::threads));
Environment.MVND_BUILDER.removeCommandLineOption(args);
Environment.MVND_BUILDER.addCommandLineOption(args, parameters.builder());
Optional<String> builder = Optional.ofNullable(Environment.MVND_BUILDER.removeCommandLineOption(args));
Environment.MVND_BUILDER.addCommandLineOption(args, builder.orElseGet(parameters::builder));
final Path settings = parameters.settings();
if (settings != null) {
Environment.MAVEN_SETTINGS.removeCommandLineOption(args);
Environment.MAVEN_SETTINGS.addCommandLineOption(args, settings.toString());
}
Optional<String> settings = Optional.ofNullable(Environment.MAVEN_SETTINGS.removeCommandLineOption(args))
.or(() -> Optional.ofNullable(parameters.settings()).map(Path::toString));
settings.ifPresent(s -> Environment.MAVEN_SETTINGS.addCommandLineOption(args, s));
final Path localMavenRepository = parameters.mavenRepoLocal();
if (localMavenRepository != null && !Environment.MAVEN_REPO_LOCAL.hasCommandLineOption(args)) {
Environment.MAVEN_REPO_LOCAL.addCommandLineOption(args, localMavenRepository.toString());
}
Optional<String> repo = Optional.ofNullable(Environment.MAVEN_REPO_LOCAL.removeCommandLineOption(args))
.or(() -> Optional.ofNullable(parameters.mavenRepoLocal()).map(Path::toString));
repo.ifPresent(r -> Environment.MAVEN_REPO_LOCAL.addCommandLineOption(args, r));
Environment.MVND_TERMINAL_WIDTH.addCommandLineOption(args, Integer.toString(output.getTerminalWidth()));