-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathVersionsWriter.scala
More file actions
75 lines (62 loc) · 2.76 KB
/
Copy pathVersionsWriter.scala
File metadata and controls
75 lines (62 loc) · 2.76 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
66
67
68
69
70
71
72
73
74
75
package org.podval.tools.backend
import org.podval.tools.build.{Backend, Dependency, ScalaBinaryVersion, TestFramework, Version}
import org.podval.tools.jvm.{JvmBackend, JUnit4Underlying}
import org.podval.tools.node.NodeInstaller
import org.podval.tools.scalajs.ScalaJSBackend
import org.podval.tools.scalanative.ScalaNativeBackend
import org.podval.tools.test.framework
import org.podval.tools.util.Files
import java.io.File
// This writes versions of everything into an AsciiDoc file that the documentation uses;
// this way, the versions are guaranteed to be consistent - if this was run ;)
object VersionsWriter:
def main(args: Array[String]): Unit =
Files.write(
File("gradle.properties"),
Seq(s"${Backend.property} = ${JvmBackend.name}") ++
versions.map((name, version) => s"version_${name.replace('-', '_')} = $version")
)
Files.splice(
file = File("README.adoc"),
boundary = "// INCLUDED ATTRIBUTES",
patch =
attributes.map((name, value) => s":attribute-$name: $value") ++
versions.map((name, version) => s":version-$name: $version")
)
private val gradleVersion: Version = Version("9.5.1")
private val pluginVersion: Version = Version("1.0.3")
private def attributes: Seq[(String, String)] = Seq(
"gradleVersionForBadge" -> gradleVersion.toString.replace("-", "--"),
"pluginBackendProperty" -> Backend.property
)
private val versions: Seq[(String, Version)] =
def testFrameworks: List[(String, Dependency)] = TestFramework
.all
.toList
.map(framework =>
val name: String = framework
.name
.toLowerCase
.replace(" ", "-")
.replace(".", "-")
s"framework-$name" -> framework.dependency
)
Seq(
"gradle" -> gradleVersion,
"plugin" -> pluginVersion,
"scalanative" -> ScalaNativeBackend.versionDefault,
"scalajs" -> ScalaJSBackend .versionDefault,
"framework-specs2-scala2" -> framework.Specs2 .versionDefaultScala2
) ++
(dependencies ++ testFrameworks).map((name, dependency) => name -> dependency.versionDefault)
private def dependencies: Seq[(String, Dependency)] = Seq(
"scala" -> ScalaBinaryVersion.Scala3WithScala3Library,
"scala-213" -> ScalaBinaryVersion.Scala2_13,
"scala-212" -> ScalaBinaryVersion.Scala2_12,
"sbt-test-interface" -> JvmBackend.SbtTestInterface,
"scalajs-dom" -> ScalaJSBackend.dom,
"scalajs-env-jsdom-nodejs" -> ScalaJSBackend.jsDomNode,
"scala-js-env-playwright" -> ScalaJSBackend.playwright,
"node" -> NodeInstaller,
"junit" -> JUnit4Underlying
)