Skip to content

Commit 1759ecd

Browse files
authored
feat: settings.gradle plugin (#1731)
1 parent c104213 commit 1759ecd

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

build-artifacts/project-template-gradle/settings.gradle

+71
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,74 @@ include ':app'//, ':runtime', ':runtime-binding-generator'
55
//project(':runtime-binding-generator').projectDir = new File("${System.env.ANDROID_RUNTIME_HOME}/test-app/runtime-binding-generator")
66

77
file("google-services.json").renameTo(file("./app/google-services.json"))
8+
9+
import org.gradle.internal.logging.text.StyledTextOutputFactory
10+
11+
import java.nio.file.Paths
12+
13+
import org.gradle.internal.logging.text.StyledTextOutputFactory
14+
import groovy.json.JsonSlurper
15+
import static org.gradle.internal.logging.text.StyledTextOutput.Style
16+
17+
def USER_PROJECT_ROOT = "$rootDir/../../"
18+
def outLogger = services.get(StyledTextOutputFactory).create("colouredOutputLogger")
19+
def ext = {
20+
appResourcesPath = getProperty("appResourcesPath")
21+
appPath = getProperty("appPath")
22+
}
23+
24+
def getAppPath = { ->
25+
def relativePathToApp = "app"
26+
def nsConfigFile = file("$USER_PROJECT_ROOT/nsconfig.json")
27+
def nsConfig
28+
29+
if (nsConfigFile.exists()) {
30+
nsConfig = new JsonSlurper().parseText(nsConfigFile.getText("UTF-8"))
31+
}
32+
33+
if (ext.appPath) {
34+
// when appPath is passed through -PappPath=/path/to/app
35+
// the path could be relative or absolute - either case will work
36+
relativePathToApp = ext.appPath
37+
} else if (nsConfig != null && nsConfig.appPath != null) {
38+
relativePathToApp = nsConfig.appPath
39+
}
40+
41+
return Paths.get(USER_PROJECT_ROOT).resolve(relativePathToApp).toAbsolutePath()
42+
}
43+
44+
45+
def getAppResourcesPath = { ->
46+
def relativePathToAppResources
47+
def absolutePathToAppResources
48+
def nsConfigFile = file("$USER_PROJECT_ROOT/nsconfig.json")
49+
def nsConfig
50+
51+
if (nsConfigFile.exists()) {
52+
nsConfig = new JsonSlurper().parseText(nsConfigFile.getText("UTF-8"))
53+
}
54+
if (ext.appResourcesPath) {
55+
// when appResourcesPath is passed through -PappResourcesPath=/path/to/App_Resources
56+
// the path could be relative or absolute - either case will work
57+
relativePathToAppResources = ext.appResourcesPath
58+
absolutePathToAppResources = Paths.get(USER_PROJECT_ROOT).resolve(relativePathToAppResources).toAbsolutePath()
59+
} else if (nsConfig != null && nsConfig.appResourcesPath != null) {
60+
relativePathToAppResources = nsConfig.appResourcesPath
61+
absolutePathToAppResources = Paths.get(USER_PROJECT_ROOT).resolve(relativePathToAppResources).toAbsolutePath()
62+
} else {
63+
absolutePathToAppResources = "${getAppPath()}/App_Resources"
64+
}
65+
return absolutePathToAppResources
66+
}
67+
68+
def applySettingsGradleConfiguration = { ->
69+
def appResourcesPath = getAppResourcesPath()
70+
def pathToSettingsGradle = "$appResourcesPath/Android/settings.gradle"
71+
def settingsGradle = file(pathToSettingsGradle)
72+
if (settingsGradle.exists()) {
73+
outLogger.withStyle(Style.SuccessHeader).println "\t + applying user-defined configuration from ${settingsGradle}"
74+
apply from: pathToSettingsGradle
75+
}
76+
}
77+
78+
applySettingsGradleConfiguration()

0 commit comments

Comments
 (0)