forked from ktorio/ktor-init-tools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsynchronize_versions.kt
executable file
·34 lines (29 loc) · 1.05 KB
/
synchronize_versions.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env kscript
import java.io.*
import java.nio.charset.*
import java.util.*
fun main(args: Array<String>) {
val properties = Properties().apply { load(File("gradle.properties").readText().reader()) }
val version = properties["version"]
File("ktor-intellij-plugin/resources/META-INF/plugin.xml").updateFile(save = true) {
it.replace(Regex("<version>(.*?)</version>"), "<version>$version</version>")
}
File("ktor-generator-website/resources/index.html").updateFile(save = true) {
it.replace(Regex("""Ktor Project Generator \((.*?)\)"""), "Ktor Project Generator ($version)")
}
}
fun File.updateFile(save: Boolean, charset: Charset = Charsets.UTF_8, callback: (String) -> String) {
print("Processing $this...")
val oldText = this.readText(charset)
val newText = callback(oldText)
if (save) {
if (oldText != newText) {
this.writeText(newText, charset)
println("Saved")
} else {
println("Same content")
}
} else {
println("Not saved")
}
}