InAppInfoCreateTask.kt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. import org.mjdev.gradle.extensions.println
  18. open class InAppInfoCreateTask : BaseTask() {
  19. @get:OutputDirectory
  20. val srcOutputDir: File
  21. get() = srcOutputDirectory
  22. init {
  23. group = "mjdev"
  24. description = "Create ApplicationInfo class"
  25. outputs.upToDateWhen { false }
  26. }
  27. override fun onClean() {
  28. }
  29. override fun onAssemble() {
  30. registerSourceDirectory(srcOutputDir)
  31. createFile(
  32. name = "ApplicationInfo",
  33. packageName = project.applicationId
  34. ) {
  35. createClass(
  36. name = "ApplicationInfo"
  37. ) {
  38. createFnc(
  39. name = "getInfo",
  40. returnType = String::class
  41. ) {
  42. addStatement("return \"\"")
  43. }
  44. }
  45. }.write(srcOutputDir) {
  46. println("Writing generated file: ${srcOutputDir}/${this.name}.kt")
  47. }
  48. }
  49. }