mirror of
https://github.com/sbt/sbt.git
synced 2026-10-06 18:14:04 +02:00
Allow -cp argument to 'apply' command to be quoted. Fixes #724.
This commit is contained in:
@@ -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,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")
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user