private Optional tryToGetFromCommandLine()

in gradle-runner-agent/src/main/java/jetbrains/buildServer/gradle/agent/GradleUserHomeManager.java [57:86]


  private Optional<File> tryToGetFromCommandLine(@NotNull List<String> gradleTasks, @NotNull List<String> gradleParams) {
    String gradleUserHomeCLArg = null;
    String gradleUserHomeSystemProperty = null;
    List<String> tasksAndParams = Stream.concat(gradleTasks.stream(), gradleParams.stream()).collect(Collectors.toList());

    for (int i = 0; i < tasksAndParams.size(); i++) {
      String item = tasksAndParams.get(i);
      if (item.startsWith("--gradle-user-home=") || item.startsWith("-g=")) {
        gradleUserHomeCLArg = extractEqualSignSeparatedParamValue(item);
        break;
      }
      if (item.equals("--gradle-user-home") || item.equals("-g") && i + 1 < tasksAndParams.size()) {
        gradleUserHomeCLArg = tasksAndParams.get(i + 1);
        break;
      }
      if (item.startsWith("-Dgradle.user.home=")) {
        gradleUserHomeSystemProperty = extractEqualSignSeparatedParamValue(item);
      }
    }

    if (gradleUserHomeCLArg != null) {
      return Optional.of(new File(gradleUserHomeCLArg));
    }

    if (gradleUserHomeSystemProperty != null) {
      return Optional.of(new File(gradleUserHomeSystemProperty));
    }

    return Optional.empty();
  }