diff options
author | Jan Christopher Vogt <oss.nsp@cvogt.org> | 2017-02-20 06:54:51 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-20 06:54:51 +0800 |
commit | 420b0bc9fdb542d0af49da96e37733ab3a3363ee (patch) | |
tree | d48f2c25cf26cad69dd34497d54b8863305d86da /stage2 | |
parent | 48f5f394798795e682a3acaa197d47ccf6bcde61 (diff) | |
parent | f8057597e687cc2000210e81b824c5676372aabe (diff) | |
download | cbt-420b0bc9fdb542d0af49da96e37733ab3a3363ee.tar.gz cbt-420b0bc9fdb542d0af49da96e37733ab3a3363ee.tar.bz2 cbt-420b0bc9fdb542d0af49da96e37733ab3a3363ee.zip |
Merge pull request #354 from cvogt/fix-srcJar
fix srcJar path. Was wronly absolute fs path. Now relative.
Diffstat (limited to 'stage2')
-rw-r--r-- | stage2/Lib.scala | 22 | ||||
-rw-r--r-- | stage2/PackageJars.scala | 2 |
2 files changed, 16 insertions, 8 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) diff --git a/stage2/PackageJars.scala b/stage2/PackageJars.scala index 8ba1798..0e4a444 100644 --- a/stage2/PackageJars.scala +++ b/stage2/PackageJars.scala @@ -15,7 +15,7 @@ trait PackageJars extends BaseBuild with ArtifactInfo{ } def srcJar: Option[File] = taskCache[PackageJars]("srcJar").memoize{ - lib.srcJar( sourceFiles, artifactId, scalaMajorVersion, version, scalaTarget ) + lib.srcJar( sources, artifactId, scalaMajorVersion, version, scalaTarget, sourceFileFilter, projectDirectory ) } def docJar: Option[File] = taskCache[PackageJars]("docJar").memoize{ |