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

Introducing the copy() directive for installation.

Example use:

    install {
        collect(compileDependencies).map {
            copy(it, to("deploy"))
        }
    }
This commit is contained in:
Cedric Beust 2017-04-05 14:11:30 -07:00
parent 756fbec648
commit 9514d80b99
3 changed files with 17 additions and 2 deletions

View file

@ -1,6 +1,7 @@
package com.beust.kobalt
import com.beust.kobalt.api.annotation.Directive
import java.io.File
/**
* Base classes for directives that support install(from,to) (e.g. install{} or jar{}).
@ -18,6 +19,13 @@ open class IncludeFromTo {
@Directive
fun to(s: String) = To(s)
@Directive
fun copy(from: String, to: To) {
with(File(from)) {
includedFiles.add(IncludedFile(from(parent), to, listOf(IFileSpec.FileSpec(name))))
}
}
@Directive
fun include(vararg files: String) {
includedFiles.add(IncludedFile(files.map { IFileSpec.FileSpec(it) }))

View file

@ -333,7 +333,13 @@ class KFiles {
val result = includedFiles.fold(arrayListOf<File>()) { files, includedFile: IncludedFile ->
val foundFiles = includedFile.allFromFiles(project.directory)
val absFiles = foundFiles.map {
File(KFiles.joinDir(project.directory, includedFile.from, it.path))
if (it.isAbsolute) {
it
} else if (File(includedFile.from).isAbsolute) {
File(includedFile.from, it.path)
} else {
File(KFiles.joinDir(project.directory, includedFile.from, it.path))
}
}
files.addAll(absFiles)
files