settings.gradle.kts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. include(":core")
  2. // Load all modules under /lib
  3. File(rootDir, "lib").eachDir {
  4. val libName = it.name
  5. include(":lib-$libName")
  6. project(":lib-$libName").projectDir = File("lib/$libName")
  7. }
  8. if (System.getenv("CI") == null) {
  9. // Local development (full project build)
  10. /**
  11. * Add or remove modules to load as needed for local development here.
  12. */
  13. loadAllIndividualExtensions()
  14. // loadIndividualExtension("all", "komga")
  15. } else {
  16. // Running in CI (GitHub Actions)
  17. loadAllIndividualExtensions()
  18. }
  19. fun loadAllIndividualExtensions() {
  20. File(rootDir, "src").eachDir { dir ->
  21. dir.eachDir { subdir ->
  22. val name = ":extensions:individual:${dir.name}:${subdir.name}"
  23. include(name)
  24. project(name).projectDir = File("src/${dir.name}/${subdir.name}")
  25. }
  26. }
  27. }
  28. fun loadIndividualExtension(lang: String, name: String) {
  29. val projectName = ":extensions:individual:$lang:$name"
  30. include(projectName)
  31. project(projectName).projectDir = File("src/${lang}/${name}")
  32. }
  33. fun File.eachDir(block: (File) -> Unit) {
  34. listFiles()?.filter { it.isDirectory }?.forEach { block(it) }
  35. }