aboutsummaryrefslogtreecommitdiff
path: root/stage2/Lib.scala
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2017-02-19 23:07:09 +0800
committerChristopher Vogt <oss.nsp@cvogt.org>2017-02-19 23:07:09 +0800
commitf8057597e687cc2000210e81b824c5676372aabe (patch)
treed48f2c25cf26cad69dd34497d54b8863305d86da /stage2/Lib.scala
parent48f5f394798795e682a3acaa197d47ccf6bcde61 (diff)
downloadcbt-f8057597e687cc2000210e81b824c5676372aabe.tar.gz
cbt-f8057597e687cc2000210e81b824c5676372aabe.tar.bz2
cbt-f8057597e687cc2000210e81b824c5676372aabe.zip
fix srcJar path. Was wronly absolute fs path. Now relative.
Diffstat (limited to 'stage2/Lib.scala')
-rw-r--r--stage2/Lib.scala22
1 files changed, 15 insertions, 7 deletions
diff --git a/stage2/Lib.scala b/stage2/Lib.scala
index 7adb33e..d6047f9 100644
--- a/stage2/Lib.scala
+++ b/stage2/Lib.scala
@@ -56,10 +56,13 @@ final class Lib(val logger: Logger) extends Stage1Lib(logger){
}
}
- def srcJar(sourceFiles: Seq[File], artifactId: String, scalaMajorVersion: String, version: String, jarTarget: File): Option[File] = {
+ def srcJar(
+ sourceFiles: Seq[File], artifactId: String, scalaMajorVersion: String, version: String, jarTarget: File,
+ filter: File => Boolean, stripBase: File
+ ): Option[File] = {
lib.jarFile(
jarTarget ++ ("/"++artifactId++"_"++scalaMajorVersion++"-"++version++"-sources.jar"),
- sourceFiles
+ sourceFiles, filter=filter, stripBase=Some( stripBase )
)
}
@@ -268,11 +271,15 @@ final class Lib(val logger: Logger) extends Stage1Lib(logger){
for {
base <- sources.filter(_.exists).map(lib.realpath)
file <- lib.listFilesRecursive(base) if file.isFile && sourceFileFilter(file)
- } yield file
+ } yield file
}
// FIXME: for some reason it includes full path in docs
- def jarFile( jarFile: File, files: Seq[File], mainClass: Option[String] = None ): Option[File] = {
+ def jarFile(
+ jarFile: File, files: Seq[File], mainClass: Option[String] = None,
+ filter: File => Boolean = _ => true, stripBase: Option[File] = None
+ ): Option[File] = {
+ val stripBaseCanonical = stripBase
Files.deleteIfExists(jarFile.toPath)
if( files.isEmpty ){
None
@@ -291,9 +298,10 @@ final class Lib(val logger: Logger) extends Stage1Lib(logger){
base <- files.filter(_.exists).map(realpath)
file <- listFilesRecursive(base) if file.isFile
} yield {
- val name = if(base.isDirectory){
- file.toString stripPrefix (base.toString ++ File.separator)
- } else file.toString
+ val strip = Some( base ).filter(_.isDirectory) ++ stripBaseCanonical
+ val name = strip.foldLeft( file.getCanonicalPath )(
+ (f, prefix) => f.stripPrefix( prefix.getCanonicalPath ++ File.separator )
+ )
val entry = new JarEntry( name )
entry.setTime(file.lastModified)
jar.putNextEntry(entry)