public ProgramCommandLine makeProgramCommandLine()

in tc-sbt-runner-agent/src/main/java/jetbrains/buildServer/sbt/SbtRunnerBuildService.java [114:156]


    public ProgramCommandLine makeProgramCommandLine() throws RunBuildException {

        List<String> jvmArgs = JavaRunnerUtil.extractJvmArgs(getRunnerParameters());

        String mainClassName = isAutoInstallMode() ? installSbt() : getMainClassName();

        SBTVersion sbtVersion = SbtVersionDetector.discoverSbtVersion(getWorkingDirectory(), getSbtLauncher(), jvmArgs, getLogger());

        copySbtTcLogger(sbtVersion);

        String javaHome = getJavaHome();
        String sbtHome = getSbtHome();
        getLogger().message("Java home set to: " + javaHome);
        getLogger().message("SBT home set to: " + sbtHome);

        JavaCommandLineBuilder cliBuilder = new JavaCommandLineBuilder();
        cliBuilder.setJavaHome(javaHome);
        cliBuilder.setBaseDir(getCheckoutDirectory().getAbsolutePath());

        cliBuilder.setSystemProperties(getVMProperties());
        Map<String, String> envVars = new HashMap<String, String>(getEnvironmentVariables());

        envVars.put(SbtRunnerConstants.SBT_HOME, sbtHome);
        envVars.put(JavaRunnerConstants.JAVA_HOME, javaHome);

        String path = envVars.get(PATH);
        envVars.put(PATH, javaHome + (!StringUtil.isEmpty(path) ? File.pathSeparator + path : ""));

        fixSbtSocketLengthIssueIfNeeded(envVars);

        cliBuilder.setEnvVariables(envVars);


        cliBuilder.setJvmArgs(jvmArgs);
        cliBuilder.setClassPath(getClasspath());
        cliBuilder.setMainClass(mainClassName);

        cliBuilder.setProgramArgs(getCommands(sbtVersion));

        cliBuilder.setWorkingDir(getWorkingDirectory().getAbsolutePath());

        return buildCommandline(cliBuilder);
    }