diff options
author | Guillaume Jacquart <guillaume.jacquart@hoodbrains.com> | 2023-05-09 06:00:43 +0000 |
---|---|---|
committer | Guillaume Jacquart <guillaume.jacquart@hoodbrains.com> | 2023-05-09 06:00:43 +0000 |
commit | 5a432ecde520ee039786848296e5227571404158 (patch) | |
tree | 077eafb42d5d2d18b2ffc03bc93d9a8654377774 /buildSrc/src/main/java/foundation/e/advancedprivacy | |
parent | a348c8196a643e4f5853587133b05e3ec2cd0faa (diff) | |
parent | a8874167f663885f2d3371801cf03681576ac817 (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.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 |