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

Fix file names with variants.

This commit is contained in:
Cedric Beust 2015-11-15 21:27:23 -08:00
parent b08790cf50
commit 1590128a11
2 changed files with 22 additions and 10 deletions

View file

@ -204,4 +204,19 @@ class Variant(val productFlavorName: String = "", val buildTypeName: String = ""
return result return result
} }
} }
fun archiveName(project: Project, archiveName: String?, suffix: String) : String {
val result: String =
if (isDefault) archiveName ?: project.name + "-" + project.version + suffix
else {
val base = if (archiveName != null) archiveName.substring(0, archiveName.length - suffix.length)
else project.name + "-" + project.version
base +
if (productFlavorName.isEmpty()) "" else "-$productFlavorName" +
if (buildTypeName.isEmpty()) "" else "-$buildTypeName" +
suffix
}
return result
}
} }

View file

@ -124,7 +124,7 @@ class PackagingPlugin @Inject constructor(val dependencyManager : DependencyMana
allFiles.add(IncludedFile(From(fullDir), To(WEB_INF), listOf(Glob("**")))) allFiles.add(IncludedFile(From(fullDir), To(WEB_INF), listOf(Glob("**"))))
val jarFactory = { os:OutputStream -> JarOutputStream(os, manifest) } val jarFactory = { os:OutputStream -> JarOutputStream(os, manifest) }
return generateArchive(project, ".war", allFiles, return generateArchive(project, war.name, ".war", allFiles,
false /* don't expand jar files */, jarFactory) false /* don't expand jar files */, jarFactory)
} }
@ -180,7 +180,7 @@ class PackagingPlugin @Inject constructor(val dependencyManager : DependencyMana
} }
val jarFactory = { os:OutputStream -> JarOutputStream(os, manifest) } val jarFactory = { os:OutputStream -> JarOutputStream(os, manifest) }
return generateArchive(project, ".jar", allFiles, return generateArchive(project, jar.name, ".jar", allFiles,
true /* expandJarFiles */, jarFactory) true /* expandJarFiles */, jarFactory)
} }
@ -222,21 +222,18 @@ class PackagingPlugin @Inject constructor(val dependencyManager : DependencyMana
private fun generateZip(project: Project, zip: Zip) { private fun generateZip(project: Project, zip: Zip) {
val allFiles = findIncludedFiles(project.directory, zip.includedFiles, zip.excludes) val allFiles = findIncludedFiles(project.directory, zip.includedFiles, zip.excludes)
generateArchive(project, ".zip", allFiles) generateArchive(project, zip.name, ".zip", allFiles)
} }
private val DEFAULT_STREAM_FACTORY = { os : OutputStream -> ZipOutputStream(os) } private val DEFAULT_STREAM_FACTORY = { os : OutputStream -> ZipOutputStream(os) }
private fun generateArchive(project: Project, suffix: String, private fun generateArchive(project: Project,
archiveName: String?,
suffix: String,
includedFiles: List<IncludedFile>, includedFiles: List<IncludedFile>,
expandJarFiles : Boolean = false, expandJarFiles : Boolean = false,
outputStreamFactory: (OutputStream) -> ZipOutputStream = DEFAULT_STREAM_FACTORY) : File { outputStreamFactory: (OutputStream) -> ZipOutputStream = DEFAULT_STREAM_FACTORY) : File {
val variantSuffix = with(context.variant) { val fullArchiveName = context.variant.archiveName(project, archiveName, suffix)
if (isDefault) ""
else listOf(productFlavorName, buildTypeName).joinToString("-")
}
val fullArchiveName = listOf(project.name, project.version!!, variantSuffix).joinToString("-") + suffix
val archiveDir = File(libsDir(project)) val archiveDir = File(libsDir(project))
val result = File(archiveDir.path, fullArchiveName) val result = File(archiveDir.path, fullArchiveName)
val outStream = outputStreamFactory(FileOutputStream(result)) val outStream = outputStreamFactory(FileOutputStream(result))