Search in sources :

Example 1 with Unzip

use of com.intellij.compiler.ant.taskdefs.Unzip in project intellij-community by JetBrains.

the class ExtractedDirectoryPackagingElement method computeAntInstructions.

@Override
public List<? extends Generator> computeAntInstructions(@NotNull PackagingElementResolvingContext resolvingContext, @NotNull AntCopyInstructionCreator creator, @NotNull ArtifactAntGenerationContext generationContext, @NotNull ArtifactType artifactType) {
    final String jarPath = generationContext.getSubstitutedPath(myFilePath);
    final String pathInJar = StringUtil.trimStart(myPathInJar, "/");
    if (pathInJar.length() == 0) {
        return Collections.singletonList(creator.createExtractedDirectoryInstruction(jarPath));
    }
    final String archiveName = PathUtil.getFileName(myFilePath);
    final String tempDirProperty = generationContext.createNewTempFileProperty("temp.unpacked.path." + archiveName, archiveName);
    final String tempDirPath = BuildProperties.propertyRef(tempDirProperty);
    generationContext.runBeforeCurrentArtifact(new Mkdir(tempDirPath));
    final Unzip unzip = new Unzip(jarPath, tempDirPath);
    final PatternSet patterns = new PatternSet(null);
    patterns.add(new Include(pathInJar + "**"));
    unzip.add(patterns);
    generationContext.runBeforeCurrentArtifact(unzip);
    return Collections.singletonList(creator.createDirectoryContentCopyInstruction(tempDirPath + "/" + pathInJar));
}
Also used : Mkdir(com.intellij.compiler.ant.taskdefs.Mkdir) Unzip(com.intellij.compiler.ant.taskdefs.Unzip) Include(com.intellij.compiler.ant.taskdefs.Include) PatternSet(com.intellij.compiler.ant.taskdefs.PatternSet)

Aggregations

Include (com.intellij.compiler.ant.taskdefs.Include)1 Mkdir (com.intellij.compiler.ant.taskdefs.Mkdir)1 PatternSet (com.intellij.compiler.ant.taskdefs.PatternSet)1 Unzip (com.intellij.compiler.ant.taskdefs.Unzip)1