summaryrefslogtreecommitdiff
path: root/buildSrc/src/main/java/foundation/e/advancedprivacy
diff options
context:
space:
mode:
authorGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2023-05-09 06:00:43 +0000
committerGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2023-05-09 06:00:43 +0000
commit5a432ecde520ee039786848296e5227571404158 (patch)
tree077eafb42d5d2d18b2ffc03bc93d9a8654377774 /buildSrc/src/main/java/foundation/e/advancedprivacy
parenta348c8196a643e4f5853587133b05e3ec2cd0faa (diff)
parenta8874167f663885f2d3371801cf03681576ac817 (diff)
Merge branch '1200-move_package_to_advanced_privacy' into 'main'
1200: rename everything to AdvancedPrivacy See merge request e/os/advanced-privacy!128
Diffstat (limited to 'buildSrc/src/main/java/foundation/e/advancedprivacy')
-rw-r--r--buildSrc/src/main/java/foundation/e/advancedprivacy/buildsrc/DependencyUpdates.kt42
1 files changed, 42 insertions, 0 deletions
diff --git a/buildSrc/src/main/java/foundation/e/advancedprivacy/buildsrc/DependencyUpdates.kt b/buildSrc/src/main/java/foundation/e/advancedprivacy/buildsrc/DependencyUpdates.kt
new file mode 100644
index 0000000..1f233d5
--- /dev/null
+++ b/buildSrc/src/main/java/foundation/e/advancedprivacy/buildsrc/DependencyUpdates.kt
@@ -0,0 +1,42 @@
+package foundation.e.advancedprivacy.buildsrc
+
+enum class ReleaseType(private val level: Int) {
+ SNAPSHOT(0),
+ DEV(1),
+ ALPHA(10),
+ BETA(20),
+ RC(60),
+ RELEASE(100);
+
+ fun isEqualOrMoreStableThan(other: ReleaseType): Boolean = level >= other.level
+
+ fun isLessStableThan(other: ReleaseType): Boolean = level < other.level
+}
+
+object DependencyUpdates {
+ private val stableKeywords = arrayOf("RELEASE", "FINAL", "GA")
+ private val releaseRegex = "^[0-9,.v-]+(-r)?$".toRegex(RegexOption.IGNORE_CASE)
+ private val rcRegex = releaseKeywordRegex("rc")
+ private val betaRegex = releaseKeywordRegex("beta")
+ private val alphaRegex = releaseKeywordRegex("alpha")
+ private val devRegex = releaseKeywordRegex("dev")
+
+ @JvmStatic
+ fun versionToRelease(version: String): ReleaseType {
+ val stableKeyword = stableKeywords.any { version.toUpperCase().contains(it) }
+ if (stableKeyword) return ReleaseType.RELEASE
+
+ return when {
+ releaseRegex.matches(version) -> ReleaseType.RELEASE
+ rcRegex.matches(version) -> ReleaseType.RC
+ betaRegex.matches(version) -> ReleaseType.BETA
+ alphaRegex.matches(version) -> ReleaseType.ALPHA
+ devRegex.matches(version) -> ReleaseType.DEV
+ else -> ReleaseType.SNAPSHOT
+ }
+ }
+
+ private fun releaseKeywordRegex(keyword: String): Regex {
+ return "^[0-9,.v-]+(-$keyword[0-9]*)$".toRegex(RegexOption.IGNORE_CASE)
+ }
+} \ No newline at end of file