1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-25 07:57:12 -07:00

MetaArchive fix.

This commit is contained in:
Cedric Beust 2018-03-21 15:17:20 -07:00
parent 8d938bac2e
commit b368aedef2

View file

@ -93,14 +93,14 @@ class MetaArchive(outputFile: File, val manifest: Manifest?) : Closeable {
}
}
@Suppress("PrivatePropertyName")
private val DEFAULT_JAR_EXCLUDES =
Glob("META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA", MANIFEST_MF)
private val seen = hashSetOf<String>()
private fun okToAdd(name: String): Boolean = ! seen.contains(name)
&& ! KFiles.isExcluded(name, DEFAULT_JAR_EXCLUDES)
private fun okToAdd(name: String) : Boolean {
val result = !KFiles.isExcluded(name,
Glob("META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA", MANIFEST_MF))
// if (name.startsWith("META-INF")) println((if (result) "ADDING" else "NOT ADDING") + " $name")
return result
}
override fun close() = zos.close()
@ -112,10 +112,14 @@ class MetaArchive(outputFile: File, val manifest: Manifest?) : Closeable {
zos.closeArchiveEntry()
}
private val seen = hashSetOf<String>()
private fun maybeAddEntry(entry: ArchiveEntry, action:() -> Unit) {
if (okToAdd(entry.name)) {
action()
entry.name.let { name ->
if (!seen.contains(name) && okToAdd(name)) {
action()
}
seen.add(name)
}
seen.add(entry.name)
}
}