InAppInfoCreateTask.kt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. * Copyright (c) Milan Jurkulák 2024.
  3. * Contact:
  4. * e: mimoccc@gmail.com
  5. * e: mj@mjdev.org
  6. * w: https://mjdev.org
  7. */
  8. package org.mjdev.gradle.tasks
  9. import org.gradle.api.tasks.OutputDirectory
  10. import org.mjdev.gradle.extensions.applicationId
  11. import org.mjdev.gradle.extensions.createFile
  12. import org.mjdev.gradle.extensions.srcOutputDirectory
  13. import java.io.File
  14. import org.mjdev.gradle.base.BaseTask
  15. import org.mjdev.gradle.extensions.write
  16. import org.mjdev.gradle.extensions.registerSourceDirectory
  17. open class InAppInfoCreateTask : BaseTask() {
  18. @get:OutputDirectory
  19. val srcOutputDir: File
  20. get() = srcOutputDirectory
  21. init {
  22. group = "mjdev"
  23. description = "Create ApplicationInfo class"
  24. outputs.upToDateWhen { false }
  25. }
  26. override fun doTask() {
  27. registerSourceDirectory(srcOutputDir)
  28. createFile(
  29. name = "ApplicationInfo",
  30. packageName = project.applicationId
  31. ) {
  32. createClass(
  33. name = "ApplicationInfo"
  34. ) {
  35. createFnc(
  36. name = "getInfo",
  37. returnType = String::class
  38. ) {
  39. addStatement("return \"\"")
  40. }
  41. }
  42. }.write(srcOutputDir) {
  43. println("> Writing generated file: ${srcOutputDir}/${this.name}.kt")
  44. }
  45. }
  46. }