annotate agent/src/jetbrains/buildServer/symbols/tools/PdbStrExe.java @ 117:d2c79f95c2a6 tip

remove tailing slash in teamcity server url when constructing symbol server url
author Evgeniy.Koshkin@unit-519.Labs.IntelliJ.Net
date Fri, 27 May 2016 15:27:30 +0300
parents 4c516ddbddf1
children
rev   line source
12
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
1 /*
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
2 * Copyright 2000-2013 JetBrains s.r.o.
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
3 *
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
4 * Licensed under the Apache License, Version 2.0 (the "License");
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
5 * you may not use this file except in compliance with the License.
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
6 * You may obtain a copy of the License at
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
7 *
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
8 * http://www.apache.org/licenses/LICENSE-2.0
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
9 *
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
10 * Unless required by applicable law or agreed to in writing, software
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
11 * distributed under the License is distributed on an "AS IS" BASIS,
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
13 * See the License for the specific language governing permissions and
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
14 * limitations under the License.
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
15 */
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
16
27
76ed2d58c871 - reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents: 12
diff changeset
17 package jetbrains.buildServer.symbols.tools;
12
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
18
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
19 import com.intellij.execution.configurations.GeneralCommandLine;
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
20 import jetbrains.buildServer.ExecResult;
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
21 import jetbrains.buildServer.SimpleCommandLineProcessRunner;
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
22
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
23 import java.io.File;
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
24
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
25 /**
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
26 * @author Evgeniy.Koshkin
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
27 */
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
28 public class PdbStrExe {
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
29
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
30 public static final String SRCSRV_STREAM_NAME = "srcsrv";
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
31
27
76ed2d58c871 - reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents: 12
diff changeset
32 private static final String PDBSTR_EXE = "pdbstr.exe";
12
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
33 private static final String STREAM_NAME_SWITCH = "-s";
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
34 private static final String PATH_TO_PDB_FILE_SWITCH = "-p";
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
35 private static final String PATH_TO_INPUT_FILE_SWITCH = "-i";
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
36
27
76ed2d58c871 - reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents: 12
diff changeset
37 private final File myPath;
12
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
38
41
4c516ddbddf1 located srcsrv tools home dir under win sdk home dir
Evgeniy.Koshkin
parents: 27
diff changeset
39 public PdbStrExe(File srcSrvHomeDir) {
4c516ddbddf1 located srcsrv tools home dir under win sdk home dir
Evgeniy.Koshkin
parents: 27
diff changeset
40 myPath = new File(srcSrvHomeDir, PDBSTR_EXE);
27
76ed2d58c871 - reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents: 12
diff changeset
41 }
76ed2d58c871 - reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents: 12
diff changeset
42
76ed2d58c871 - reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents: 12
diff changeset
43 public ExecResult doCommand(final PdbStrExeCommands cmd, final File pdbFile, final File inputStreamFile, final String streamName){
12
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
44 final GeneralCommandLine commandLine = new GeneralCommandLine();
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
45 commandLine.setWorkDirectory(myPath.getParent());
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
46 commandLine.setExePath(myPath.getPath());
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
47 commandLine.addParameter(cmd.getCmdSwitch());
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
48 commandLine.addParameter(String.format("%s:%s", PATH_TO_PDB_FILE_SWITCH, pdbFile.getAbsolutePath()));
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
49 commandLine.addParameter(String.format("%s:%s", PATH_TO_INPUT_FILE_SWITCH, inputStreamFile.getAbsolutePath()));
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
50 commandLine.addParameter(STREAM_NAME_SWITCH + ":" + streamName);
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
51 return SimpleCommandLineProcessRunner.runCommand(commandLine, null);
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
52 }
662a0be55de7 - source indexing works!
Evgeniy.Koshkin
parents:
diff changeset
53 }