Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ bootstrap_deploy_dev:
sbt clean
sbt gui
sbt package copy
sbt buildProject/package
sbt deployDev

create:
Expand Down
1 change: 1 addition & 0 deletions build/build.sbt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name := "chatoverflow-build"
version := "0.3"
sbtPlugin := true

// JSON lib (Jackson) used for parsing the GUI version in the package.json file
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ object BootstrapUtility {

// Second step: Create bin directories and copy all binaries
val targetJarDirectories = List("bin", "deploy/bin")
prepareBinDirectories(logger, targetJarDirectories, scalaLibraryVersion, copyApi = true)
prepareBinDirectories(logger, targetJarDirectories, scalaLibraryVersion, copyApi = true, copyBuild = false)

// Third step: Copy bootstrap launcher
copyJars(s"bootstrap/target/scala-$scalaLibraryVersion/", List("deploy/"), logger)
Expand All @@ -141,7 +141,7 @@ object BootstrapUtility {
* @param dependencies the dependencies of the framework. Used to create a sbt file with them.
*/
def prepareDevDeploymentTask(logger: ManagedLogger, scalaLibraryVersion: String, apiProjectPath: String, dependencies: List[ModuleID]): Unit = {
// Assuming, before this: clean, gui and package
// Assuming, before this: clean, gui, package and buildProject/package
// Assuming: Hardcoded "bin/", "deployDev/" and "build/" folders
// Assuming: A folder called "deployment-files/plugin-dev/" with more additional files for plugin developers

Expand All @@ -154,27 +154,13 @@ object BootstrapUtility {

// Second step: Copy all binaries
val targetJarDirectories = List("bin", "deployDev/bin")
prepareBinDirectories(logger, targetJarDirectories, scalaLibraryVersion, copyApi = false)
prepareBinDirectories(logger, targetJarDirectories, scalaLibraryVersion, copyApi = false, copyBuild = true)

// Third step: Copy the api
sbt.IO.copyDirectory(new File(apiProjectPath), new File("deployDev/api/"))
sbt.IO.delete(new File("deployDev/api/target")) // otherwise compiled code would end up in the zip

// Fourth step: Copy required build files
val requiredProjectFiles = Set("build.properties", "dependencies.sbt")
for (filepath <- requiredProjectFiles) {
val origFile = new File(s"project/$filepath")
val deployFile = new File(s"deployDev/project/$filepath")
sbt.IO.copyFile(origFile, deployFile)
}

sbt.IO.copyDirectory(new File("build"), new File("deployDev/build"))

val packageDir = "deployDev/build/src/main/scala/org/codeoverflow/chatoverflow/build"
sbt.IO.delete(new File(packageDir, "deployment"))
sbt.IO.delete(new File(packageDir, "GUIUtility.scala"))

// Fifth step: Create sbt files containing all dependencies
// Fourth step: Create sbt files containing all dependencies
val depFile = new SbtFile(dependencies)
sbt.IO.write(new File("deployDev/dependencies.sbt"), depFile.toString)

Expand All @@ -189,7 +175,7 @@ object BootstrapUtility {
}
}

private def prepareBinDirectories(logger: ManagedLogger, targetDirs: List[String], scalaLibraryVersion: String, copyApi: Boolean): Unit = {
private def prepareBinDirectories(logger: ManagedLogger, targetDirs: List[String], scalaLibraryVersion: String, copyApi: Boolean, copyBuild: Boolean): Unit = {
// First prepare all bin folders
targetDirs.foreach(d => {
logger info s"Preparing '$d' folder."
Expand All @@ -198,10 +184,12 @@ object BootstrapUtility {

// Then copy all binary files
logger info "Copying chat overflow files..."
val sourceJarDirectories = if (copyApi)
List(s"target/scala-$scalaLibraryVersion/", s"api/target/scala-$scalaLibraryVersion/")
else
List(s"target/scala-$scalaLibraryVersion/")

val sourceJarDirectories = List(
Some(s"target/scala-$scalaLibraryVersion/"),
if (copyApi) Some(s"api/target/scala-$scalaLibraryVersion/") else None,
if (copyBuild) Some(s"build/target/scala-$scalaLibraryVersion/sbt-1.0") else None
).flatten

sourceJarDirectories.foreach(d => copyJars(d, targetDirs, logger))
}
Expand Down
1 change: 1 addition & 0 deletions deployment-files/plugin-dev/project/build.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
sbt.version=1.1.2
1 change: 1 addition & 0 deletions deployment-files/plugin-dev/project/dependencies.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Compile / unmanagedJars := (file("./bin") ** "chatoverflow-build*.jar").classpath