Allow -cp argument to 'apply' command to be quoted. Fixes #724.

This commit is contained in:
Mark Harrah
2013-04-29 15:12:16 -04:00
parent f7476e4800
commit bb884ebe8b
3 changed files with 7 additions and 9 deletions
+3 -5
View File
@@ -96,11 +96,9 @@ object BasicCommands
token(base, compl)
}
private[this] def classpathOptionParser: Parser[Seq[String]] =
token( ("-cp" | "-classpath") ~> Space ) ~> rep1sep(classpathString, token(File.pathSeparatorChar)) <~ token(Space)
private[this] def classpathString: Parser[String] =
token(charClass(entryClass, "<classpath-entry>").+.string, "<classpath-entry>")
private[this] def entryClass(c: Char): Boolean =
c != File.pathSeparatorChar && !java.lang.Character.isWhitespace(c)
token( ("-cp" | "-classpath") ~> Space ) ~> classpathStrings <~ token(Space)
private[this] def classpathStrings: Parser[Seq[String]] =
token(StringBasic.map(s => IO.pathSplit(s).toSeq), "<classpath>")
def exit = Command.command(TerminateAction, exitBrief, exitBrief ) ( _ exit true )
+1 -1
View File
@@ -1,5 +1,5 @@
sbtPlugin := true
TaskKey[Unit]("copyOutputDir") <<= (classDirectory in Compile, baseDirectory) map { (cd, base) =>
IO.copyDirectory(cd, base / "out")
IO.copyDirectory(cd, base / "out spaced")
}
+3 -3
View File
@@ -1,11 +1,11 @@
# compiles a new State => State instance
> compile
# puts the classes in a stable location (out/)
# puts the classes in a stable location (out spaced/ to test escaping)
> copyOutputDir
# checks that `apply` can load from a specific classpath
> apply -cp out demo.AddNewCommand
> 'apply -cp """out spaced/""" demo.AddNewCommand'
# check that AddNewCommand was actually run
# If it was, it should have registered `newCommand`
> newCommand
> newCommand