Created
December 15, 2010 18:12
-
-
Save mccv/742368 to your computer and use it in GitHub Desktop.
.ensime generating task for sbt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// generate ensime config | |
lazy val genEnsime = task (args => { | |
if (args.length == 1) { | |
genEnsimeConstructor(args(0).toString) | |
} else { | |
task { Some("Usage: gen-ensime <project package name>") } | |
} | |
}) describedAs("Generate a .ensime file for this project") | |
def genEnsimeConstructor(packageName: String) = task { | |
val ensime = new StringBuffer() | |
// if you have more libs, override this bit | |
val jarDirs = List(dependencyPath, crossPath("lib_managed") + "/compile", crossPath("lib_managed") + "/test").map("\"" + _ + "\"") | |
// ditto with more src dirs | |
val srcDirs = List(thriftJavaPath.toString).map("\"" + _ + "\"") | |
ensime.append(";; this config was generated by standard-project. Feel free to customize!\n") | |
ensime.append("(\n") | |
ensime.append(":project-package \"").append(packageName).append("\"\n") | |
ensime.append(":use-sbt t\n") | |
ensime.append(":compile-jars (").append(jarDirs.mkString(" ")).append(")\n") | |
ensime.append(":sources (").append(srcDirs.mkString(" ")).append(")\n") | |
ensime.append(")\n") | |
// rename old file (if it exists) | |
val oldFile = new File(".ensime") | |
if (oldFile.exists) { | |
val newFile = new File(".ensime-%d".format(System.currentTimeMillis())) | |
oldFile.renameTo(newFile) | |
} | |
// and dump our config | |
val newFile = new File(".ensime") | |
val writer = new FileWriter(newFile) | |
writer.write(ensime.toString()) | |
writer.close() | |
None | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment