1
0
Fork 0
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:
Cedric Beust 2015-12-31 10:21:06 -08:00
commit 31d22e3c1c
10 changed files with 31 additions and 27 deletions

View file

@ -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)

View file

@ -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)

View file

@ -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")) {

View file

@ -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 {

View file

@ -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")

View file

@ -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)))
} }

View file

@ -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
} }

View file

@ -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,

View file

@ -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>()

View file

@ -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")
} }