Search in sources :

Example 1 with LernaLockFileResult

use of com.synopsys.integration.detectable.detectables.lerna.lockfile.LernaLockFileResult in project synopsys-detect by blackducksoftware.

the class LernaPackager method extractPackage.

@Nullable
private LernaResult extractPackage(LernaPackage lernaPackage, List<NameVersion> externalPackages, LernaLockFileResult rootLockFile) {
    String lernaPackageDetails = String.format("%s:%s at %s", lernaPackage.getName(), lernaPackage.getVersion(), lernaPackage.getLocation());
    if (lernaPackage.isPrivate() && lernaPackageTypeFilter.shouldExclude(LernaPackageType.PRIVATE)) {
        logger.debug("Skipping extraction of private lerna package {}.", lernaPackageDetails);
        return null;
    }
    logger.debug("Now extracting Lerna package {}.", lernaPackageDetails);
    File lernaPackageDirectory = new File(lernaPackage.getLocation());
    LernaLockFileResult lockFile = findLockFiles(lernaPackageDirectory);
    File packagesPackageJson = fileFinder.findFile(lernaPackageDirectory, LernaDetectable.PACKAGE_JSON);
    if (packagesPackageJson == null) {
        return LernaResult.failure(new FileNotFoundException(String.format("A %s file was not found in %s.", LernaDetectable.PACKAGE_JSON, lernaPackageDirectory.getAbsolutePath())));
    }
    if (lockFile.hasLockFile()) {
        return parse(lernaPackageDirectory, packagesPackageJson, lockFile, externalPackages);
    } else {
        return parse(lernaPackageDirectory, packagesPackageJson, rootLockFile, externalPackages);
    }
}
Also used : LernaLockFileResult(com.synopsys.integration.detectable.detectables.lerna.lockfile.LernaLockFileResult) FileNotFoundException(java.io.FileNotFoundException) File(java.io.File) Nullable(org.jetbrains.annotations.Nullable)

Example 2 with LernaLockFileResult

use of com.synopsys.integration.detectable.detectables.lerna.lockfile.LernaLockFileResult in project synopsys-detect by blackducksoftware.

the class LernaPackager method generateLernaResult.

public LernaResult generateLernaResult(File sourceDirectory, File rootPackageJson, List<LernaPackage> lernaPackages) {
    LernaLockFileResult rootLockFile = findLockFiles(sourceDirectory);
    LernaResult rootLernaResult = parse(sourceDirectory, rootPackageJson, rootLockFile, new ArrayList<>());
    List<NameVersion> externalPackages = lernaPackages.stream().map(lernaPackage -> new NameVersion(lernaPackage.getName(), lernaPackage.getVersion())).collect(Collectors.toList());
    List<CodeLocation> codeLocations = new ArrayList<>(rootLernaResult.getCodeLocations());
    for (LernaPackage lernaPackage : lernaPackages) {
        LernaResult lernaResult = extractPackage(lernaPackage, externalPackages, rootLockFile);
        if (lernaResult != null) {
            if (lernaResult.isSuccess()) {
                lernaResult.getCodeLocations().stream().map(codeLocation -> new CodeLocation(codeLocation.getDependencyGraph(), codeLocation.getExternalId().orElse(null), new File(lernaPackage.getLocation()))).forEach(codeLocations::add);
            } else if (lernaResult.isFailure()) {
                String extractionErrorMessage = lernaResult.getException().map(Throwable::getMessage).orElse("Error message not found.");
                logger.warn("Failed to extract lerna package: {}", extractionErrorMessage);
                lernaResult.getException().ifPresent(exception -> logger.debug("Lerna Extraction Failure", exception));
            }
        }
    }
    return LernaResult.success(rootLernaResult.getProjectName(), rootLernaResult.getProjectVersionName(), codeLocations);
}
Also used : NullSafePackageJson(com.synopsys.integration.detectable.detectables.yarn.packagejson.NullSafePackageJson) LoggerFactory(org.slf4j.LoggerFactory) YarnResult(com.synopsys.integration.detectable.detectables.yarn.YarnResult) FileFinder(com.synopsys.integration.common.util.finder.FileFinder) ExcludedIncludedWildcardFilter(com.synopsys.integration.util.ExcludedIncludedWildcardFilter) ArrayList(java.util.ArrayList) NameVersion(com.synopsys.integration.util.NameVersion) LernaPackage(com.synopsys.integration.detectable.detectables.lerna.model.LernaPackage) LernaResult(com.synopsys.integration.detectable.detectables.lerna.model.LernaResult) YarnPackager(com.synopsys.integration.detectable.detectables.yarn.YarnPackager) NpmPackagerResult(com.synopsys.integration.detectable.detectables.npm.lockfile.result.NpmPackagerResult) NpmLockfilePackager(com.synopsys.integration.detectable.detectables.npm.lockfile.parse.NpmLockfilePackager) Logger(org.slf4j.Logger) EnumListFilter(com.synopsys.integration.detectable.detectable.util.EnumListFilter) PackageJsonReader(com.synopsys.integration.detectable.detectables.yarn.packagejson.PackageJsonReader) IOException(java.io.IOException) FileUtils(org.apache.commons.io.FileUtils) YarnWorkspaces(com.synopsys.integration.detectable.detectables.yarn.workspace.YarnWorkspaces) YarnLockParser(com.synopsys.integration.detectable.detectables.yarn.parse.YarnLockParser) Collectors(java.util.stream.Collectors) File(java.io.File) FileNotFoundException(java.io.FileNotFoundException) StandardCharsets(java.nio.charset.StandardCharsets) Nullable(org.jetbrains.annotations.Nullable) YarnLock(com.synopsys.integration.detectable.detectables.yarn.parse.YarnLock) List(java.util.List) CodeLocation(com.synopsys.integration.detectable.detectable.codelocation.CodeLocation) Collections(java.util.Collections) LernaLockFileResult(com.synopsys.integration.detectable.detectables.lerna.lockfile.LernaLockFileResult) LernaResult(com.synopsys.integration.detectable.detectables.lerna.model.LernaResult) CodeLocation(com.synopsys.integration.detectable.detectable.codelocation.CodeLocation) NameVersion(com.synopsys.integration.util.NameVersion) LernaLockFileResult(com.synopsys.integration.detectable.detectables.lerna.lockfile.LernaLockFileResult) ArrayList(java.util.ArrayList) LernaPackage(com.synopsys.integration.detectable.detectables.lerna.model.LernaPackage) File(java.io.File)

Aggregations

LernaLockFileResult (com.synopsys.integration.detectable.detectables.lerna.lockfile.LernaLockFileResult)2 File (java.io.File)2 FileNotFoundException (java.io.FileNotFoundException)2 Nullable (org.jetbrains.annotations.Nullable)2 FileFinder (com.synopsys.integration.common.util.finder.FileFinder)1 CodeLocation (com.synopsys.integration.detectable.detectable.codelocation.CodeLocation)1 EnumListFilter (com.synopsys.integration.detectable.detectable.util.EnumListFilter)1 LernaPackage (com.synopsys.integration.detectable.detectables.lerna.model.LernaPackage)1 LernaResult (com.synopsys.integration.detectable.detectables.lerna.model.LernaResult)1 NpmLockfilePackager (com.synopsys.integration.detectable.detectables.npm.lockfile.parse.NpmLockfilePackager)1 NpmPackagerResult (com.synopsys.integration.detectable.detectables.npm.lockfile.result.NpmPackagerResult)1 YarnPackager (com.synopsys.integration.detectable.detectables.yarn.YarnPackager)1 YarnResult (com.synopsys.integration.detectable.detectables.yarn.YarnResult)1 NullSafePackageJson (com.synopsys.integration.detectable.detectables.yarn.packagejson.NullSafePackageJson)1 PackageJsonReader (com.synopsys.integration.detectable.detectables.yarn.packagejson.PackageJsonReader)1 YarnLock (com.synopsys.integration.detectable.detectables.yarn.parse.YarnLock)1 YarnLockParser (com.synopsys.integration.detectable.detectables.yarn.parse.YarnLockParser)1 YarnWorkspaces (com.synopsys.integration.detectable.detectables.yarn.workspace.YarnWorkspaces)1 ExcludedIncludedWildcardFilter (com.synopsys.integration.util.ExcludedIncludedWildcardFilter)1 NameVersion (com.synopsys.integration.util.NameVersion)1