Repository navigation
Expand file tree
/
Copy pathupdateVersions.main.kts
More file actions
executable file
·65 lines (53 loc) · 1.74 KB
/
Copy pathupdateVersions.main.kts
File metadata and controls
executable file
·65 lines (53 loc) · 1.74 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env kotlin
@file:DependsOn("org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.11.0")
import kotlinx.serialization.builtins.MapSerializer
import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.jsonObject
import java.io.File
val json = Json {
prettyPrint = true
prettyPrintIndent = " "
}
val versionInputFile = File("versions.json")
val versionInputs = Json.decodeFromString(
MapSerializer(String.serializer(), String.serializer()), versionInputFile.readText()
)
println(versionInputs)
val isCI = System.getenv("CI") != null
versionInputs.keys.forEach { key ->
val templateFile = File(key).resolve("package.template.json")
if(!templateFile.exists()) {
return@forEach
}
val packageJson = Json.parseToJsonElement(
templateFile.readText()
).jsonObject.toMutableMap()
if(isCI) {
packageJson["version"] = JsonPrimitive(versionInputs[key])
val vpmDeps = packageJson["vpmDependencies"]?.jsonObject?.mapValues { (k, v) ->
if (k in versionInputs.keys) {
JsonPrimitive(versionInputs[k])
} else {
v
}
}
if (vpmDeps != null) {
packageJson["vpmDependencies"] = JsonObject(vpmDeps)
}
templateFile.delete()
templateFile.resolveSibling("package.template.json.meta").delete()
}
File(key)
.resolve("package.json")
.writeText(
json.encodeToString(
JsonObject.serializer(),
JsonObject(
packageJson
)
)
)
}