mirror of https://github.com/sbt/sbt.git
allow *, ** in paths and handle absolute paths for 'load' and related commands
This commit is contained in:
parent
1ee5af39d6
commit
e750de2c3b
|
|
@ -124,7 +124,27 @@ The command has the following syntax:
|
||||||
}
|
}
|
||||||
|
|
||||||
def paths(implicit base: File): String => Seq[File] =
|
def paths(implicit base: File): String => Seq[File] =
|
||||||
_ split sep map file(base)
|
_ split sep flatMap files(base)
|
||||||
|
|
||||||
|
def files(base: File)(path: String): Seq[File] = readFinder(Path.fromFile(base), path).getFiles.toSeq
|
||||||
|
|
||||||
def file(base: File) = (path: String) => Path.fromString(base, path).asFile
|
def file(base: File) = (path: String) => Path.fromString(base, path).asFile
|
||||||
|
|
||||||
|
def readFinder(base: File, s: String): PathFinder =
|
||||||
|
{
|
||||||
|
val f = new File(s)
|
||||||
|
asFinder( if(f.isAbsolute) f else new File(base, s) )
|
||||||
|
}
|
||||||
|
def asFinder(f: File): PathFinder =
|
||||||
|
{
|
||||||
|
val parent = f.getParentFile
|
||||||
|
if(parent eq null)
|
||||||
|
Path.fromFile(f)
|
||||||
|
else
|
||||||
|
{
|
||||||
|
val finder = asFinder(parent)
|
||||||
|
val sub = f.getName
|
||||||
|
if(sub == "**") (finder ***) else if(sub contains "*") finder * GlobFilter(sub) else finder / sub
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue