File templatesFolder = new File("$rootProject.projectDir.absolutePath${File.separatorChar}gradle${File.separatorChar}templates")

Map properties = new HashMap<String, String>()

if (templatesFolder.exists() && templatesFolder.isDirectory()) {
    templatesFolder.listFiles().each {
        properties[it.name - ".gradle"] = it.absolutePath
    }
}

properties["projectByName"] = { name ->
    for (subproject in rootProject.subprojects) {
        if (subproject.name == name) {
            return subproject
        }
    }
    return null
}

properties["internalProject"] = { name ->
    projectByName("$name")
}

allprojects {
    ext {
        releaseMode = (project.hasProperty('RELEASE_MODE') && project.property('RELEASE_MODE') == "true") || System.getenv('RELEASE_MODE') == "true"

        properties.forEach { k, v ->
            it[k] = v
        }
    }
}