summaryrefslogtreecommitdiff
path: root/project
diff options
context:
space:
mode:
Diffstat (limited to 'project')
-rw-r--r--project/JarJar.scala15
1 files changed, 12 insertions, 3 deletions
diff --git a/project/JarJar.scala b/project/JarJar.scala
index 64281f23c1..2eec0e9033 100644
--- a/project/JarJar.scala
+++ b/project/JarJar.scala
@@ -55,7 +55,7 @@ object JarJar {
def apply(in: Iterator[Entry], outdir: File,
config: Seq[JarJarConfig], verbose: Boolean = false): Seq[File] = {
val patterns = config.map(_.toPatternElement).asJava
- val processor: JarProcessor = newMainProcessor(patterns, verbose, false)
+ val processor = newMainProcessor(patterns, verbose, false)
def process(e: Entry): Option[File] = {
val struct = new EntryStruct()
struct.name = e.name
@@ -77,7 +77,16 @@ object JarJar {
}
else None
}
- in.flatMap(entry => process(entry)).toList
-
+ val processed = in.flatMap(entry => process(entry)).toSet
+ val getter = processor.getClass.getDeclaredMethod("getExcludes")
+ getter.setAccessible(true)
+ val excludes = getter.invoke(processor).asInstanceOf[java.util.Set[String]].asScala
+ val excluded = excludes.map { name =>
+ val f: File = outdir / name
+ if(f.exists && !f.delete())
+ throw new IOException("Failed to delete excluded file $f")
+ f
+ }
+ (processed -- excluded).toSeq
}
}