in nuget-server/src/jetbrains/buildServer/nuget/server/exec/impl/NuGetExecutorImpl.java [55:109]
public <T> T executeNuGet(@NotNull final File nugetExePath,
@NotNull final List<String> arguments,
@NotNull final Collection<PackageSource> packageSources,
@NotNull final NuGetOutputProcessor<T> listener) throws NuGetExecutionException {
assertOs();
GeneralCommandLine cmd = new GeneralCommandLine();
cmd.setExePath(myNuGetTeamCityProvider.getNuGetRunnerPath().getAbsolutePath());
if (TeamCityProperties.getBooleanOrTrue(NUGET_SERVER_CLI_FORCE_ASSEMBLY_VALIDATION_PROP)) {
cmd.addParameter(NUGET_CLI_FORCE_ASSEMBLY_VALIDATION_ARG);
}
cmd.addParameter(nugetExePath.getPath());
cmd.addParameters(arguments);
File sourcesFile;
try {
sourcesFile = TempFilesUtil.createTempFile(myTempFiles.getTempDirectory(), "trigger-sources");
PackageSourceUtil.writeSources(sourcesFile, packageSources);
} catch (IOException e) {
throw new NuGetExecutionException("Failed to create temp file for NuGet sources. " + e.getMessage(), e);
}
final Map<String, String> additionalEnvironment = new HashMap<String, String>();
additionalEnvironment.put(TEAMCITY_NUGET_FEEDS_ENV_VAR, sourcesFile.getAbsolutePath());
additionalEnvironment.put(NUGET_CREDENTIALPROVIDERS_PATH_ENV_VAR, myNuGetTeamCityProvider.getCredentialProviderHomeDirectory().getAbsolutePath());
cmd.setEnvParams(additionalEnvironment);
cmd.setPassParentEnvs(true);
if (LOG.isDebugEnabled()) {
LOG.debug("Starting: " + cmd.getCommandLineString());
}
final ExecResult result = SimpleCommandLineProcessRunner.runCommand(cmd, new byte[0]);
if (LOG.isDebugEnabled()) {
LOG.debug("Exited with code: " + result.getExitCode());
if (!StringUtil.isEmptyOrSpaces(result.getStdout())) {
LOG.debug("Output: " + result.getStdout());
}
if (!StringUtil.isEmptyOrSpaces(result.getStderr())) {
LOG.debug("Error: " + result.getStderr());
}
}
FileUtil.delete(sourcesFile);
listener.onStdOutput(result.getStdout());
listener.onStdError(result.getStderr());
listener.onFinished(result.getExitCode());
return listener.getResult();
}