@@ -22,8 +22,8 @@ set -eu
2222# 1 - version name
2323# 2 - version code
2424
25- versionName=" $1 "
26- versionCode=" $2 "
25+ versionName=" $1 " # Format: $major.$minor.$patch-$type-$abi e.g. 2.7.0-beta-arm64
26+ versionCode=" $2 " # Format: $major$minor$patch e.g. 270
2727
2828# Android defaultConfig
2929DEFCONFIG_REPLACE_BEGIN=" FDROID_PREBUILD_DEFCONFIG_REPLACE_BEGIN"
@@ -36,52 +36,45 @@ SETTINGS_GRADLE_REPLACE_END="FDROID_PREBUILD_SETTINGS_REPLACE_END"
3636# Android productFlavors
3737FLAVORS_INSERT=" FDROID_PREBUILD_FLAVORS_INSERT"
3838
39- # Insert Gradle properties
40- PROPS_INSERT=" FDROID_PREBUILD_PROPS_INSERT"
41-
4239# File to update
4340build_gradle=" build.gradle.kts"
44- gradle_props=" ../gradle .properties"
41+ gradle_props=" ../fdroid .properties"
4542settings_gradle=" ../settings.gradle.kts"
4643
4744flavorDef=" productFlavors {\n"
4845
4946i=1
5047for arch in arm64-v8a armeabi-v7a x86_64; do
5148 flavorDef+=" create(\" $arch \" ) { \n"
52- flavorDef+=" versionNameSuffix = \" $arch \" \n"
49+ flavorDef+=" versionNameSuffix = \" -fdroid \" \n"
5350 flavorDef+=" versionCode = 100 * $versionCode + $i \n"
5451 flavorDef+=" }\n"
55- i=$(( i + 1 ))
52+ i=$(( i + 1 ))
5653done
5754
5855flavorDef+=" }"
5956
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-
6657# settings.gradle
67- settingsDef=$( cat << - END
68- val properties = File(rootDir, "gradle.properties").let { props ->
58+ settingsDef=$(
59+ cat << -END
60+ val propsFile = File(rootDir, "fdroid.properties")
61+ if (!propsFile.exists() || !propsFile.isFile) {
62+ throw GradleException("fdroid.properties file does not exist or is not a file")
63+ }
64+
65+ val properties = propsFile.let { props ->
6966 java.util.Properties().also {
7067 it.load(props.reader())
7168 }
7269 }
7370
74- val isFDroidBuild = properties.getProperty("ide.build.fdroid", "true").toBoolean()
71+ val isFDroidBuild = properties.getProperty("ide.build.fdroid", "true").toBoolean()
7572
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- }
73+ val fdroidVersionName = requireNotNull(properties.getProperty("ide.build.fdroid.version", null)) {
74+ "'ide.build.fdroid' is 'true' but no 'ide.build.fdroid.version' is defined!"
75+ }
7976
80- gradle.beforeProject {
81- if (project.path == ":") {
82- gradle.rootProject.version = "v" + fdroidVersionName
83- }
84- }
77+ gradle.rootProject { project.setProperty("version", fdroidVersionName) }
8578END
8679
8780)
@@ -108,10 +101,9 @@ awk -v begin="$SETTINGS_GRADLE_REPLACE_BEGIN" -v end="$SETTINGS_GRADLE_REPLACE_E
108101 next;
109102 }
110103 !printing
111- ' $settings_gradle > temp_settings.gradle && mv temp_settings.gradle $settings_gradle
112-
113-
104+ ' $settings_gradle > temp_settings.gradle && mv temp_settings.gradle $settings_gradle
114105
115- # Insert Gradle properties
116- sed -i " /# @@$PROPS_INSERT @@/c\
117- $propsDef " $gradle_props
106+ # Write Gradle properties
107+ echo " ide.build.fdroid=true" > " $gradle_props "
108+ echo " ide.build.fdroid.version=${versionName} " >> " $gradle_props "
109+ echo " ide.build.fdroid.vercode=${versionCode} " >> " $gradle_props "
0 commit comments