mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-26 16:28:12 -07:00
Merge branch 'master' of github.com:cbeust/kobalt
Conflicts: kobalt/wrapper/kobalt-wrapper.properties src/main/resources/kobalt.properties
This commit is contained in:
commit
31d22e3c1c
10 changed files with 31 additions and 27 deletions
|
@ -58,4 +58,4 @@ fun authRepos(vararg repos : HostConfig) {
|
||||||
fun authRepo(init: HostConfig.() -> Unit) = HostConfig().apply { init() }
|
fun authRepo(init: HostConfig.() -> Unit) = HostConfig().apply { init() }
|
||||||
|
|
||||||
@Directive
|
@Directive
|
||||||
fun glob(g: String) : IFileSpec.Glob = IFileSpec.Glob(g)
|
fun glob(g: String) : IFileSpec.GlobSpec = IFileSpec.GlobSpec(g)
|
||||||
|
|
|
@ -9,16 +9,16 @@ sealed class IFileSpec {
|
||||||
abstract fun toFiles(directory: String): List<File>
|
abstract fun toFiles(directory: String): List<File>
|
||||||
|
|
||||||
class FileSpec(val spec: String) : IFileSpec() {
|
class FileSpec(val spec: String) : IFileSpec() {
|
||||||
override public fun toFiles(directory: String) = arrayListOf(File(spec))
|
override public fun toFiles(directory: String) = listOf(File(spec))
|
||||||
|
|
||||||
override public fun toString() = spec
|
override public fun toString() = spec
|
||||||
}
|
}
|
||||||
|
|
||||||
class Glob(val spec: String) : IFileSpec() {
|
class GlobSpec(val spec: String) : IFileSpec() {
|
||||||
override public fun toFiles(directory: String): List<File> {
|
override public fun toFiles(directory: String): List<File> {
|
||||||
val result = arrayListOf<File>()
|
val result = arrayListOf<File>()
|
||||||
|
|
||||||
val matcher = FileSystems.getDefault().getPathMatcher("glob:${spec}")
|
val matcher = FileSystems.getDefault().getPathMatcher("glob:$spec")
|
||||||
Files.walkFileTree(Paths.get(directory), object : SimpleFileVisitor<Path>() {
|
Files.walkFileTree(Paths.get(directory), object : SimpleFileVisitor<Path>() {
|
||||||
override public fun visitFile(path: Path, attrs: BasicFileAttributes): FileVisitResult {
|
override public fun visitFile(path: Path, attrs: BasicFileAttributes): FileVisitResult {
|
||||||
val rel = Paths.get(directory).relativize(path)
|
val rel = Paths.get(directory).relativize(path)
|
||||||
|
|
|
@ -29,9 +29,9 @@ public class JarUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
private val DEFAULT_JAR_EXCLUDES = arrayListOf(
|
private val DEFAULT_JAR_EXCLUDES = arrayListOf(
|
||||||
IFileSpec.Glob("META-INF/*.SF"),
|
IFileSpec.GlobSpec("META-INF/*.SF"),
|
||||||
IFileSpec.Glob("META-INF/*.DSA"),
|
IFileSpec.GlobSpec("META-INF/*.DSA"),
|
||||||
IFileSpec.Glob("META-INF/*.RSA"))
|
IFileSpec.GlobSpec("META-INF/*.RSA"))
|
||||||
|
|
||||||
public fun addSingleFile(directory: String, file: IncludedFile, outputStream: ZipOutputStream,
|
public fun addSingleFile(directory: String, file: IncludedFile, outputStream: ZipOutputStream,
|
||||||
expandJarFiles: Boolean, onError: (Exception) -> Unit = DEFAULT_HANDLER) {
|
expandJarFiles: Boolean, onError: (Exception) -> Unit = DEFAULT_HANDLER) {
|
||||||
|
@ -57,7 +57,7 @@ public class JarUtils {
|
||||||
outputStream.closeEntry()
|
outputStream.closeEntry()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val includedFile = IncludedFile(From(source.path), To(""), listOf(IFileSpec.Glob("**")))
|
val includedFile = IncludedFile(From(source.path), To(""), listOf(IFileSpec.GlobSpec("**")))
|
||||||
addSingleFile(".", includedFile, outputStream, expandJarFiles)
|
addSingleFile(".", includedFile, outputStream, expandJarFiles)
|
||||||
} else {
|
} else {
|
||||||
if (expandJarFiles and source.name.endsWith(".jar")) {
|
if (expandJarFiles and source.name.endsWith(".jar")) {
|
||||||
|
|
|
@ -277,9 +277,9 @@ class KFiles {
|
||||||
|
|
||||||
fun makeOutputTestDir(project: Project) : File = makeDir(project, KFiles.TEST_CLASSES_DIR)
|
fun makeOutputTestDir(project: Project) : File = makeDir(project, KFiles.TEST_CLASSES_DIR)
|
||||||
|
|
||||||
fun isExcluded(file: File, excludes: List<IFileSpec.Glob>) = isExcluded(file.path, excludes)
|
fun isExcluded(file: File, excludes: List<IFileSpec.GlobSpec>) = isExcluded(file.path, excludes)
|
||||||
|
|
||||||
fun isExcluded(file: String, excludes: List<IFileSpec.Glob>) : Boolean {
|
fun isExcluded(file: String, excludes: List<IFileSpec.GlobSpec>) : Boolean {
|
||||||
if (excludes.isEmpty()) {
|
if (excludes.isEmpty()) {
|
||||||
return false
|
return false
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -54,7 +54,8 @@ class GetDependenciesCommand @Inject constructor(val executors: KobaltExecutors,
|
||||||
val pluginDependencies = pluginUrls.map { File(it.toURI()) }.map { FileDependency(it.absolutePath) }
|
val pluginDependencies = pluginUrls.map { File(it.toURI()) }.map { FileDependency(it.absolutePath) }
|
||||||
projects.forEach { project ->
|
projects.forEach { project ->
|
||||||
val compileDependencies = pluginDependencies.map { toDependencyData(it, "compile")} +
|
val compileDependencies = pluginDependencies.map { toDependencyData(it, "compile")} +
|
||||||
allDeps(project.compileDependencies).map { toDependencyData(it, "compile") }
|
allDeps(project.compileDependencies).map { toDependencyData(it, "compile") } +
|
||||||
|
allDeps(project.compileProvidedDependencies).map { toDependencyData(it, "compile") }
|
||||||
val testDependencies = allDeps(project.testDependencies).map { toDependencyData(it, "testCompile") }
|
val testDependencies = allDeps(project.testDependencies).map { toDependencyData(it, "testCompile") }
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
|
|
@ -2,7 +2,7 @@ package com.beust.kobalt.plugin.packaging
|
||||||
|
|
||||||
import com.beust.kobalt.*
|
import com.beust.kobalt.*
|
||||||
import com.beust.kobalt.IFileSpec.FileSpec
|
import com.beust.kobalt.IFileSpec.FileSpec
|
||||||
import com.beust.kobalt.IFileSpec.Glob
|
import com.beust.kobalt.IFileSpec.GlobSpec
|
||||||
import com.beust.kobalt.api.*
|
import com.beust.kobalt.api.*
|
||||||
import com.beust.kobalt.api.annotation.Directive
|
import com.beust.kobalt.api.annotation.Directive
|
||||||
import com.beust.kobalt.api.annotation.ExportedProjectProperty
|
import com.beust.kobalt.api.annotation.ExportedProjectProperty
|
||||||
|
@ -43,7 +43,7 @@ class PackagingPlugin @Inject constructor(val dependencyManager : DependencyMana
|
||||||
const val TASK_INSTALL: String = "install"
|
const val TASK_INSTALL: String = "install"
|
||||||
|
|
||||||
|
|
||||||
fun findIncludedFiles(directory: String, files: List<IncludedFile>, excludes: List<IFileSpec.Glob>)
|
fun findIncludedFiles(directory: String, files: List<IncludedFile>, excludes: List<IFileSpec.GlobSpec>)
|
||||||
: List<IncludedFile> {
|
: List<IncludedFile> {
|
||||||
val result = arrayListOf<IncludedFile>()
|
val result = arrayListOf<IncludedFile>()
|
||||||
files.forEach { includedFile ->
|
files.forEach { includedFile ->
|
||||||
|
@ -313,7 +313,7 @@ class PackageConfig(val project: Project) : AttributeHolder {
|
||||||
|
|
||||||
open class Zip(open var name: String? = null) {
|
open class Zip(open var name: String? = null) {
|
||||||
// internal val includes = arrayListOf<IFileSpec>()
|
// internal val includes = arrayListOf<IFileSpec>()
|
||||||
internal val excludes = arrayListOf<Glob>()
|
internal val excludes = arrayListOf<GlobSpec>()
|
||||||
|
|
||||||
@Directive
|
@Directive
|
||||||
public fun from(s: String) = From(s)
|
public fun from(s: String) = From(s)
|
||||||
|
@ -323,11 +323,11 @@ open class Zip(open var name: String? = null) {
|
||||||
|
|
||||||
@Directive
|
@Directive
|
||||||
public fun exclude(vararg files: String) {
|
public fun exclude(vararg files: String) {
|
||||||
files.forEach { excludes.add(Glob(it)) }
|
files.forEach { excludes.add(GlobSpec(it)) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Directive
|
@Directive
|
||||||
public fun exclude(vararg specs: Glob) {
|
public fun exclude(vararg specs: GlobSpec) {
|
||||||
specs.forEach { excludes.add(it) }
|
specs.forEach { excludes.add(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -342,7 +342,7 @@ open class Zip(open var name: String? = null) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Directive
|
@Directive
|
||||||
public fun include(from: From, to: To, vararg specs: Glob) {
|
public fun include(from: From, to: To, vararg specs: GlobSpec) {
|
||||||
includedFiles.add(IncludedFile(from, to, listOf(*specs)))
|
includedFiles.add(IncludedFile(from, to, listOf(*specs)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,8 +24,8 @@ class WarGenerator @Inject constructor(val dependencyManager: DependencyManager)
|
||||||
// src/main/web app and classes
|
// src/main/web app and classes
|
||||||
//
|
//
|
||||||
val result = arrayListOf(
|
val result = arrayListOf(
|
||||||
IncludedFile(From("src/main/webapp"), To(""), listOf(IFileSpec.Glob("**"))),
|
IncludedFile(From("src/main/webapp"), To(""), listOf(IFileSpec.GlobSpec("**"))),
|
||||||
IncludedFile(From("kobaltBuild/classes"), To("WEB-INF/classes"), listOf(IFileSpec.Glob("**")))
|
IncludedFile(From("kobaltBuild/classes"), To("WEB-INF/classes"), listOf(IFileSpec.GlobSpec("**")))
|
||||||
)
|
)
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -55,7 +55,7 @@ class WarGenerator @Inject constructor(val dependencyManager: DependencyManager)
|
||||||
KFiles.copy(Paths.get(it.absolutePath), Paths.get(fullDir, it.name))
|
KFiles.copy(Paths.get(it.absolutePath), Paths.get(fullDir, it.name))
|
||||||
}
|
}
|
||||||
|
|
||||||
result.add(IncludedFile(From(fullDir), To(WEB_INF), listOf(IFileSpec.Glob("**"))))
|
result.add(IncludedFile(From(fullDir), To(WEB_INF), listOf(IFileSpec.GlobSpec("**"))))
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,16 +53,17 @@ open public class UnauthenticatedJCenterApi @Inject constructor(open val http: H
|
||||||
}
|
}
|
||||||
|
|
||||||
public class JCenterApi @Inject constructor (@Nullable @Assisted("username") val username: String?,
|
public class JCenterApi @Inject constructor (@Nullable @Assisted("username") val username: String?,
|
||||||
@Nullable @Assisted("password") val password: String?,
|
@Nullable @Assisted("password") val password: String?, @Nullable @Assisted("org") val org: String?,
|
||||||
override val http: Http, val gpg: Gpg, val executors: KobaltExecutors) : UnauthenticatedJCenterApi(http) {
|
override val http: Http, val gpg: Gpg, val executors: KobaltExecutors) : UnauthenticatedJCenterApi(http) {
|
||||||
|
|
||||||
interface IFactory {
|
interface IFactory {
|
||||||
fun create(@Nullable @Assisted("username") username: String?,
|
fun create(@Nullable @Assisted("username") username: String?,
|
||||||
@Nullable @Assisted("password") password: String?) : JCenterApi
|
@Nullable @Assisted("password") password: String?,
|
||||||
|
@Nullable @Assisted("org") org: String?) : JCenterApi
|
||||||
}
|
}
|
||||||
|
|
||||||
fun packageExists(packageName: String) : Boolean {
|
fun packageExists(packageName: String) : Boolean {
|
||||||
val url = arrayListOf(UnauthenticatedJCenterApi.BINTRAY_URL_API, "packages", username!!, "maven", packageName)
|
val url = arrayListOf(UnauthenticatedJCenterApi.BINTRAY_URL_API, "packages", org ?: username!!, "maven", packageName)
|
||||||
.joinToString("/")
|
.joinToString("/")
|
||||||
val jcResponse = parseResponse(http.get(username, password, url))
|
val jcResponse = parseResponse(http.get(username, password, url))
|
||||||
|
|
||||||
|
@ -90,7 +91,7 @@ public class JCenterApi @Inject constructor (@Nullable @Assisted("username") val
|
||||||
val fileToPath: (File) -> String = { f: File ->
|
val fileToPath: (File) -> String = { f: File ->
|
||||||
arrayListOf(
|
arrayListOf(
|
||||||
UnauthenticatedJCenterApi.BINTRAY_URL_API_CONTENT,
|
UnauthenticatedJCenterApi.BINTRAY_URL_API_CONTENT,
|
||||||
username!!,
|
org ?: username!!,
|
||||||
"maven",
|
"maven",
|
||||||
project.name,
|
project.name,
|
||||||
project.version!!,
|
project.version!!,
|
||||||
|
@ -107,7 +108,7 @@ public class JCenterApi @Inject constructor (@Nullable @Assisted("username") val
|
||||||
fun uploadFile(file: File, url: String, config: JCenterConfig, generateMd5: Boolean = false,
|
fun uploadFile(file: File, url: String, config: JCenterConfig, generateMd5: Boolean = false,
|
||||||
generateAsc: Boolean = false) =
|
generateAsc: Boolean = false) =
|
||||||
upload(arrayListOf(file), config, {
|
upload(arrayListOf(file), config, {
|
||||||
f: File -> "${UnauthenticatedJCenterApi.BINTRAY_URL_API_CONTENT}/$username/generic/$url"},
|
f: File -> "${UnauthenticatedJCenterApi.BINTRAY_URL_API_CONTENT}/${org ?: username}/generic/$url"},
|
||||||
generateMd5, generateAsc)
|
generateMd5, generateAsc)
|
||||||
|
|
||||||
private fun upload(files: List<File>, config: JCenterConfig?, fileToPath: (File) -> String,
|
private fun upload(files: List<File>, config: JCenterConfig?, fileToPath: (File) -> String,
|
||||||
|
|
|
@ -29,6 +29,7 @@ public class PublishPlugin @Inject constructor(val files: KFiles, val factory: P
|
||||||
|
|
||||||
private const val PROPERTY_BINTRAY_USER = "bintray.user"
|
private const val PROPERTY_BINTRAY_USER = "bintray.user"
|
||||||
private const val PROPERTY_BINTRAY_PASSWORD = "bintray.apikey"
|
private const val PROPERTY_BINTRAY_PASSWORD = "bintray.apikey"
|
||||||
|
private const val PROPERTY_BINTRAY_ORG = "bintray.organization"
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("UNUSED_FUNCTION_LITERAL")
|
@Suppress("UNUSED_FUNCTION_LITERAL")
|
||||||
|
@ -90,8 +91,9 @@ public class PublishPlugin @Inject constructor(val files: KFiles, val factory: P
|
||||||
val docUrl = DocUrl.PUBLISH_PLUGIN_URL
|
val docUrl = DocUrl.PUBLISH_PLUGIN_URL
|
||||||
val user = localProperties.get(PROPERTY_BINTRAY_USER, docUrl)
|
val user = localProperties.get(PROPERTY_BINTRAY_USER, docUrl)
|
||||||
val password = localProperties.get(PROPERTY_BINTRAY_PASSWORD, docUrl)
|
val password = localProperties.get(PROPERTY_BINTRAY_PASSWORD, docUrl)
|
||||||
|
val org = localProperties.get(PROPERTY_BINTRAY_ORG, docUrl)
|
||||||
|
|
||||||
val jcenter = jcenterFactory.create(user, password)
|
val jcenter = jcenterFactory.create(user, password, org)
|
||||||
var success = false
|
var success = false
|
||||||
val configuration = jcenterConfigurations[project.name]
|
val configuration = jcenterConfigurations[project.name]
|
||||||
val messages = arrayListOf<String>()
|
val messages = arrayListOf<String>()
|
||||||
|
|
|
@ -9,7 +9,7 @@ import java.io.File
|
||||||
class IncludedFileTest {
|
class IncludedFileTest {
|
||||||
fun simple() {
|
fun simple() {
|
||||||
val from = "src/main/kotlin/"
|
val from = "src/main/kotlin/"
|
||||||
val inf = IncludedFile(From(from), To(""), listOf(IFileSpec.Glob("**.kt")))
|
val inf = IncludedFile(From(from), To(""), listOf(IFileSpec.GlobSpec("**.kt")))
|
||||||
inf.allFromFiles().map { File(from, it.path) }.forEach {
|
inf.allFromFiles().map { File(from, it.path) }.forEach {
|
||||||
Assert.assertTrue(it.exists(), "Should exist: $it")
|
Assert.assertTrue(it.exists(), "Should exist: $it")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue