46 lines
1.4 KiB
Groovy
46 lines
1.4 KiB
Groovy
|
/*
|
||
|
* Dynamic Multi-Module project structure
|
||
|
* automatically adds each exercise as a sub-project (module)
|
||
|
*/
|
||
|
|
||
|
// use current directory name as root project name
|
||
|
rootProject.name = file('.').name
|
||
|
|
||
|
// dynamically add sub-projects in handout folder
|
||
|
File handoutDir = file('code')
|
||
|
if (handoutDir.isDirectory()) {
|
||
|
handoutDir.eachDir { dir ->
|
||
|
String subProjectName = ":${dir.name}"
|
||
|
include(subProjectName)
|
||
|
project(subProjectName).projectDir = dir
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// dynamically add sub-projects in solutions* folders
|
||
|
//List<File> solutionDirs = List.of(file('.').listFiles((File dir, String name) -> name.startsWith("solutions")))
|
||
|
file('.').eachDirMatch( name -> name.startsWith('solutions')) { solutionDir ->
|
||
|
if (solutionDir.isDirectory()) {
|
||
|
solutionDir.eachDir { dir ->
|
||
|
if (!dir.name.equals('images')) {
|
||
|
String subProjectName = ":${dir.name}-sol"
|
||
|
include(subProjectName)
|
||
|
project(subProjectName).projectDir = dir
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// lab preparation tasks
|
||
|
File classroomDir = file('classroom')
|
||
|
if (classroomDir.isDirectory()) {
|
||
|
String subProjectName = ":${classroomDir.name}"
|
||
|
include(subProjectName)
|
||
|
}
|
||
|
|
||
|
// Example: manually adding sub-project with name == folder
|
||
|
//include 'module1'
|
||
|
|
||
|
// Example: manually adding sub-projects with different name & folder
|
||
|
//include(':lab00-module1')
|
||
|
//project(':lab00-module1').projectDir = file('handout/module1')
|