diff options
author | Guillaume Jacquart <guillaume.jacquart@hoodbrains.com> | 2023-05-02 21:25:17 +0200 |
---|---|---|
committer | Guillaume Jacquart <guillaume.jacquart@hoodbrains.com> | 2023-05-02 22:00:35 +0200 |
commit | a8874167f663885f2d3371801cf03681576ac817 (patch) | |
tree | 5be07b8768142efeade536d4135f2250c1ac9071 /buildSrc/src/main/java/foundation/e/advancedprivacy | |
parent | a0ee04ea9dbc0802c828afdf660eb37dc6fa350f (diff) |
1200: rename everything to AdvancedPrivacy
Diffstat (limited to 'buildSrc/src/main/java/foundation/e/advancedprivacy')
-rw-r--r-- | buildSrc/src/main/java/foundation/e/advancedprivacy/buildsrc/DependencyUpdates.kt | 42 |
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 |