Mercurial > hg > tc-symbol-server
annotate agent/src/jetbrains/buildServer/symbols/tools/JetSymbolsExe.java @ 74:a5f3d4f24843 8.1.x
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
author | Evgeniy.Koshkin |
---|---|
date | Mon, 03 Mar 2014 12:58:24 +0400 |
parents | 76ed2d58c871 |
children | b3f951ab16eb |
rev | line source |
---|---|
27
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
1 package jetbrains.buildServer.symbols.tools; |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
2 |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
3 import com.intellij.execution.configurations.GeneralCommandLine; |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
4 import jetbrains.buildServer.ExecResult; |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
5 import jetbrains.buildServer.SimpleCommandLineProcessRunner; |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
6 import jetbrains.buildServer.agent.BuildProgressLogger; |
74
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
7 import jetbrains.buildServer.util.FileUtil; |
27
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
8 |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
9 import java.io.File; |
74
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
10 import java.io.IOException; |
27
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
11 import java.util.Collection; |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
12 |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
13 /** |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
14 * @author Evgeniy.Koshkin |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
15 */ |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
16 public class JetSymbolsExe { |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
17 |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
18 private static final String SYMBOLS_EXE = "JetBrains.CommandLine.Symbols.exe"; |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
19 private static final String DUMP_SYMBOL_SIGN_CMD = "dumpSymbolSign"; |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
20 private final File myExePath; |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
21 |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
22 public JetSymbolsExe(File homeDir) { |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
23 myExePath = new File(homeDir, SYMBOLS_EXE); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
24 } |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
25 |
74
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
26 public void dumpGuidsToFile(Collection<File> files, File output, BuildProgressLogger buildLogger) throws IOException { |
27
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
27 final GeneralCommandLine commandLine = new GeneralCommandLine(); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
28 commandLine.setExePath(myExePath.getPath()); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
29 commandLine.addParameter(DUMP_SYMBOL_SIGN_CMD); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
30 commandLine.addParameter(String.format("/o=\"%s\"", output.getPath())); |
74
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
31 commandLine.addParameter(String.format("/i=\"%s\"", dumpPathsToFile(files).getPath())); |
27
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
32 buildLogger.message(String.format("Running command %s", commandLine.getCommandLineString())); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
33 final ExecResult execResult = SimpleCommandLineProcessRunner.runCommand(commandLine, null); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
34 final String stdout = execResult.getStdout(); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
35 if(!stdout.isEmpty()){ |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
36 buildLogger.message("Stdout: " + stdout); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
37 } |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
38 if (execResult.getExitCode() == 0) return; |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
39 buildLogger.warning(String.format("%s ends with non-zero exit code.", SYMBOLS_EXE)); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
40 buildLogger.warning("Stdout: " + stdout); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
41 buildLogger.warning("Stderr: " + execResult.getStderr()); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
42 buildLogger.exception(execResult.getException()); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
43 } |
74
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
44 |
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
45 private File dumpPathsToFile(Collection<File> files) throws IOException { |
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
46 final File result = FileUtil.createTempFile(DUMP_SYMBOL_SIGN_CMD, ".input"); |
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
47 StringBuilder contentBuilder = new StringBuilder(); |
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
48 for(File file : files){ |
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
49 contentBuilder.append(file.getPath()).append("\n"); |
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
50 } |
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
51 FileUtil.writeToFile(result, contentBuilder.toString().getBytes()); |
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
52 return result; |
a5f3d4f24843
fixed TW-34285 - bundled new version of JetBrains.CommandLine.Symbols.exe; passed list of files via file
Evgeniy.Koshkin
parents:
27
diff
changeset
|
53 } |
27
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
diff
changeset
|
54 } |