Skip to content

Instantly share code, notes, and snippets.

@cdsap
cdsap / Properties.kt
Created May 17, 2019 08:36
properties
open class AndroidMessage : DefaultTask() {
@Input
val what: Property<String> = project.objects.property()
@Internal
val completeValue: Provider<String> = what.map { " Android $it" }
@TaskAction
fun printMessage() {
logger.quiet(completeValue.get())
}
@cdsap
cdsap / build.gradle.kts
Created May 17, 2019 08:39
build.gradle.kts
val extension = project.extensions.create("android", AndroidMessageExtension::class)
tasks.register<AndroidMessage>("what") {
what.set(extension.message)
}
configure<AndroidMessageExtension> {
message.set("Rules!!!")
}
@cdsap
cdsap / AbstractTask.kt
Created May 17, 2019 08:42
AbstractTask
abstract class TaskProducer : DefaultTask() {
@get:OutputDirectory
abstract val output : DirectoryProperty
}
@cdsap
cdsap / consumerproducer.kt
Created May 17, 2019 08:47
ConsumerProducer
abstract class TaskProducer : DefaultTask() {
@get:OutputDirectory
abstract val output : DirectoryProperty
}
abstract class TaskConsumer : DefaultTask() {
@get:InputDirectory
@get:PathSensitive(PathSensitivity.RELATIVE)
abstract val input: DirectoryProperty
@cdsap
cdsap / build.gradle
Created May 17, 2019 08:51
GradleValues
def taskProducer = tasks.register("taskProducer", TaskProducer) {
output.set(new File(project.buildDir, "test.log"))
}
def artifact = taskProducer.flatMap { it.output }
tasks.register("taskConsumer", TaskConsumer) {
input.set(artifact)
showFile()
}
@cdsap
cdsap / GenerateMD5.kt
Created May 17, 2019 10:12
GenerateMD5
class GenerateMD5 @Inject constructor(
private val sourceFile: File,
private val md5File: File)
: Runnable {
override fun run() {
try {
val stream = FileInputStream(sourceFile)
Thread.sleep(3000)
FileUtils.writeStringToFile(md5File, DigestUtils.md5Hex(stream), null as String?)
} catch (e: Exception) {
@cdsap
cdsap / CreateMD5.kt
Created May 17, 2019 10:13
CreateMD5
abstract class CreateMD5 @Inject constructor(
private val workerExecutor: WorkerExecutor
) : SourceTask() {
@get:OutputDirectory
abstract val destination: RegularFileProperty
@TaskAction
fun createHashes() {
source.files.forEach {
val file = File(destination.get().asFile, "$it.md5")
@cdsap
cdsap / build.gradle
Created May 17, 2019 10:16
build.gradle
tasks.register("md5", CreateMD5) {
destination = file("${buildDir}/md5")
source file("src/main/java")
}
@cdsap
cdsap / fields.csv
Last active August 17, 2019 09:39
Fields
Properties
cpuCount osVersion maxWorkers
javaRuntime javaVmName javaXmsBytes
javaXmxBytes javaMaxPermSize totalRamAvailableBytes
locale username publicIp
gradleVersion cacheMode cachePushEnabled
cacheUrl cacheHit cacheMiss
cacheStore gitBranch gitUser
@cdsap
cdsap / switches.csv
Last active August 20, 2019 09:25
Swtiches
Switches
buildCache configurationOnDemand
parallel continueOnFailure
offline rerunTasks
buildScan daemon
refreshDependencies dryRun