use of com.synopsys.integration.detectable.detectables.conan.ConanDetectableResult in project synopsys-detect by blackducksoftware.
the class ConanLockfileExtractor method extract.
public Extraction extract(File lockfile) {
try {
String conanLockfileContents = FileUtils.readFileToString(lockfile, StandardCharsets.UTF_8);
ConanDetectableResult result = conanLockfileParser.generateCodeLocationFromConanLockfileContents(conanLockfileContents);
return new Extraction.Builder().success(result.getCodeLocation()).projectName(result.getProjectName()).projectVersion(result.getProjectVersion()).build();
} catch (Exception e) {
return new Extraction.Builder().exception(e).build();
}
}
use of com.synopsys.integration.detectable.detectables.conan.ConanDetectableResult in project synopsys-detect by blackducksoftware.
the class ConanLockfileParserFunctionalTest method testRelativePath.
@Test
public void testRelativePath() throws IOException, IntegrationException {
File lockfile = FunctionalTestFiles.asFile("/conan/lockfile/conan_relpath.lock");
EnumListFilter<ConanDependencyType> dependencyTypeFilter = EnumListFilter.excludeNone();
ConanLockfileParser parser = new ConanLockfileParser(new Gson(), new ConanCodeLocationGenerator(dependencyTypeFilter, true), new ExternalIdFactory());
String conanLockfileContents = FileUtils.readFileToString(lockfile, StandardCharsets.UTF_8);
ConanDetectableResult result = parser.generateCodeLocationFromConanLockfileContents(conanLockfileContents);
assertEquals(1, result.getCodeLocation().getDependencyGraph().getRootDependencies().size());
}
use of com.synopsys.integration.detectable.detectables.conan.ConanDetectableResult in project synopsys-detect by blackducksoftware.
the class ConanCliExtractor method extract.
public Extraction extract(File projectDir, ExecutableTarget conanExe) {
toolVersionLogger.log(projectDir, conanExe);
ExecutableOutput conanInfoOutput;
try {
conanInfoOutput = conanCommandRunner.runConanInfoCommand(projectDir, conanExe);
} catch (Exception e) {
logger.error(String.format("Exception thrown executing conan info command: %s", e.getMessage()));
return new Extraction.Builder().exception(e).build();
}
if (!conanCommandRunner.wasSuccess(conanInfoOutput)) {
return new Extraction.Builder().failure("Conan info command reported errors").build();
}
if (!conanCommandRunner.producedOutput(conanInfoOutput)) {
return new Extraction.Builder().failure("Conan info command produced no output").build();
}
try {
ConanDetectableResult result = conanInfoParser.generateCodeLocationFromConanInfoOutput(conanInfoOutput.getStandardOutput());
return new Extraction.Builder().success(result.getCodeLocation()).projectName(result.getProjectName()).projectVersion(result.getProjectVersion()).build();
} catch (DetectableException e) {
return new Extraction.Builder().failure(e.getMessage()).build();
}
}
use of com.synopsys.integration.detectable.detectables.conan.ConanDetectableResult in project synopsys-detect by blackducksoftware.
the class ConanCliParserFunctionalTest method test.
@Test
public void test() throws IOException, IntegrationException {
File conanInfoOutputFile = FunctionalTestFiles.asFile("/conan/cli/conan_info.txt");
EnumListFilter<ConanDependencyType> dependencyTypeFilter = EnumListFilter.excludeNone();
ConanCodeLocationGenerator conanCodeLocationGenerator = new ConanCodeLocationGenerator(dependencyTypeFilter, false);
ConanInfoLineAnalyzer conanInfoLineAnalyzer = new ConanInfoLineAnalyzer();
NodeElementParser nodeElementParser = new NodeElementParser(conanInfoLineAnalyzer);
ConanInfoNodeParser conanInfoNodeParser = new ConanInfoNodeParser(conanInfoLineAnalyzer, nodeElementParser);
ConanInfoParser parser = new ConanInfoParser(conanInfoNodeParser, conanCodeLocationGenerator, new ExternalIdFactory());
String conanInfoOutput = FileUtils.readFileToString(conanInfoOutputFile, StandardCharsets.UTF_8);
ConanDetectableResult result = parser.generateCodeLocationFromConanInfoOutput(conanInfoOutput);
assertEquals(3, result.getCodeLocation().getDependencyGraph().getRootDependencies().size());
DependencyGraph actualDependencyGraph = result.getCodeLocation().getDependencyGraph();
GraphCompare.assertEqualsResource("/conan/cli/noProjectRef_graph.json", actualDependencyGraph);
}
use of com.synopsys.integration.detectable.detectables.conan.ConanDetectableResult in project synopsys-detect by blackducksoftware.
the class ConanLockfileParserFunctionalTest method testNoProjectRef.
@Test
public void testNoProjectRef() throws IOException, IntegrationException {
File lockfile = FunctionalTestFiles.asFile("/conan/lockfile/conan.lock");
EnumListFilter<ConanDependencyType> dependencyTypeFilter = EnumListFilter.excludeNone();
ConanLockfileParser parser = new ConanLockfileParser(new Gson(), new ConanCodeLocationGenerator(dependencyTypeFilter, false), new ExternalIdFactory());
String conanLockfileContents = FileUtils.readFileToString(lockfile, StandardCharsets.UTF_8);
ConanDetectableResult result = parser.generateCodeLocationFromConanLockfileContents(conanLockfileContents);
assertEquals(3, result.getCodeLocation().getDependencyGraph().getRootDependencies().size());
DependencyGraph actualDependencyGraph = result.getCodeLocation().getDependencyGraph();
GraphCompare.assertEqualsResource("/conan/lockfile/noProjectRef_graph.json", actualDependencyGraph);
}
Aggregations