Skip to content

Commit c5ebdfd

Browse files
author
Charles O'Farrell
committed
Generate sample bots as part of dist
This is not 100% done - I don't know how to depend on an arbitrary list of projects.
1 parent 159eb6a commit c5ebdfd

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-3
lines changed
-40.2 KB
Binary file not shown.
-35.9 KB
Binary file not shown.

project/build.scala

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ object build extends Build {
2121
id = "all",
2222
base = file("."),
2323
settings = standardSettings ++ Seq(distTask),
24-
aggregate = Seq(main, cli, markdown)
24+
aggregate = Seq(main, cli, markdown, referenceBot, tagTeamBot)
2525
)
2626

2727
lazy val src = Seq(
@@ -75,6 +75,16 @@ object build extends Build {
7575
)
7676
)
7777

78+
lazy val samples = (IO.listFiles(file("Scalatron") / "samples")) filter (!_.isFile) map {
79+
sample => Project(sample.getName, sample, settings = Defaults.defaultSettings ++ Seq (
80+
scalaSource in Compile <<= baseDirectory / "src",
81+
artifactName in packageBin := ((_, _, _) => "ScalatronBot.jar")
82+
))
83+
}
84+
// TODO How can we do this automatically?!?
85+
lazy val referenceBot = samples(0)
86+
lazy val tagTeamBot = samples(1)
87+
7888
val dist = TaskKey[Unit]("dist", "Makes the distribution zip file")
7989
val distTask = dist <<= (version, scalaVersion) map { (scalatronVersion, version) =>
8090
val distDir = file("dist")
@@ -102,11 +112,22 @@ object build extends Build {
102112
for (fileToCopy <- List("Readme.txt", "License.txt")) {
103113
IO.copyFile(scalatronDir / fileToCopy, distDir / fileToCopy)
104114
}
105-
for (dirToCopy <- List("samples", "webui", "doc/pdf", "bots")) {
115+
116+
for (dirToCopy <- List("webui", "doc/pdf", "bots")) {
106117
println("Copying " + dirToCopy)
107118
IO.copyDirectory(scalatronDir / dirToCopy, distDir / dirToCopy)
108119
}
109120

121+
val distSamples = distDir / "samples"
122+
for (sample <- samples) {
123+
val sampleJar = sample.base / ("target/scala-%s/ScalatronBot.jar" format version)
124+
if (sampleJar.exists) {
125+
println("Copying " + sample.base)
126+
IO.copyDirectory(sample.base / "src", distSamples / sample.base.getName / "src")
127+
IO.copyFile(sampleJar, distSamples / sample.base.getName / "ScalatronBot.jar")
128+
}
129+
}
130+
110131
for (file <- IO.listFiles(scalatronDir / "doc/tutorial") if !file.getName.endsWith(".md")) {
111132
IO.copyFile(file, distDir / "webui/tutorial" / file.getName)
112133
}
@@ -122,6 +143,6 @@ object build extends Build {
122143
IO.zip(allDistFiles, destFile)
123144
}
124145
zip (distDir, file("./scalatron-%s.zip" format scalatronVersion), "Scalatron/")
125-
} dependsOn (assembly in main, assembly in cli, assembly in markdown)
146+
} dependsOn (assembly in main, assembly in cli, assembly in markdown, packageBin in Compile in referenceBot, packageBin in Compile in tagTeamBot)
126147

127148
}

0 commit comments

Comments
 (0)