@@ -29,11 +29,20 @@ versionCode="$2"
2929DEFCONFIG_REPLACE_BEGIN=" FDROID_PREBUILD_DEFCONFIG_REPLACE_BEGIN"
3030DEFCONFIG_REPLACE_END=" FDROID_PREBUILD_DEFCONFIG_REPLACE_END"
3131
32+ # settings.gradle
33+ SETTINGS_GRADLE_REPLACE_BEGIN=" FDROID_PREBUILD_SETTINGS_REPLACE_BEGIN"
34+ SETTINGS_GRADLE_REPLACE_END=" FDROID_PREBUILD_SETTINGS_REPLACE_END"
35+
3236# Android productFlavors
3337FLAVORS_INSERT=" FDROID_PREBUILD_FLAVORS_INSERT"
3438
39+ # Insert Gradle properties
40+ PROPS_INSERT=" FDROID_PREBUILD_PROPS_INSERT"
41+
3542# File to update
36- target_file=" build.gradle.kts"
43+ build_gradle=" build.gradle.kts"
44+ gradle_props=" ../gradle.properties"
45+ settings_gradle=" ../settings.gradle.kts"
3746
3847flavorDef=" productFlavors {\n"
3948
4857
4958flavorDef+=" }"
5059
60+ # Gradle properties
61+ propsDef=" ide.build.fdroid=true\n"
62+ propsDef+=" ide.build.fdroid.version=${versionName} \n"
63+ propsDef+=" ide.build.fdroid.vercode=${versionCode} \n"
64+
65+
66+ # settings.gradle
67+ settingsDef=$( cat << - END
68+ val properties = File(rootDir, "gradle.properties").let { props ->
69+ java.util.Properties().also {
70+ it.load(props.reader())
71+ }
72+ }
73+
74+ val isFDroidBuild = properties.getProperty("ide.build.fdroid", "true").toBoolean()
75+
76+ val fdroidVersionName = requireNotNull(properties.getProperty("ide.build.fdroid.version", null)) {
77+ "'ide.build.fdroid' is 'true' but no 'ide.build.fdroid.version' is defined!"
78+ }
79+
80+ gradle.beforeProject {
81+ if (project.path == ":") {
82+ gradle.rootProject.version = "v" + fdroidVersionName
83+ }
84+ }
85+ END
86+
87+ )
88+
5189# Replace properties in defaultConfig with constants
5290sed -i " /\/\/ @@$DEFCONFIG_REPLACE_BEGIN @@/,/\/\/ @@$DEFCONFIG_REPLACE_END @@/c\
5391 applicationId = \" com.itsaky.androidide\" \n \
5492 versionName = \" $versionName \" \n \
55- versionCode = $versionCode \n" $target_file
93+ versionCode = $versionCode \n" $build_gradle
5694
5795# Add product flavors
5896sed -i " /\/\/ @@$FLAVORS_INSERT @@/c\
59- $flavorDef " $target_file
97+ $flavorDef " $build_gradle
98+
99+ # Remove the Nyx plugin from settings.gradle
100+ awk -v begin=" $SETTINGS_GRADLE_REPLACE_BEGIN " -v end=" $SETTINGS_GRADLE_REPLACE_END " -v replacement=" $settingsDef " '
101+ $0 ~ ("// @@" begin "@@") {
102+ printing = 1;
103+ print replacement;
104+ next;
105+ }
106+ printing && $0 ~ ("// @@" end "@@") {
107+ printing = 0;
108+ next;
109+ }
110+ !printing
111+ ' $settings_gradle > temp_settings.gradle && mv temp_settings.gradle $settings_gradle
112+
113+
114+
115+ # Insert Gradle properties
116+ sed -i " /# @@$PROPS_INSERT @@/c\
117+ $propsDef " $gradle_props
0 commit comments