From 58bada7d6be8d17217b4a6ef577bb4b4d307d3b5 Mon Sep 17 00:00:00 2001 From: Nepomuk Seiler Date: Sat, 19 Nov 2016 11:05:25 +0100 Subject: [PATCH] If mappings are empty don't add them to the linuxPackageMappings --- .../sbt/packager/linux/LinuxPlugin.scala | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/src/main/scala/com/typesafe/sbt/packager/linux/LinuxPlugin.scala b/src/main/scala/com/typesafe/sbt/packager/linux/LinuxPlugin.scala index 43a0dc7b9..37b46c976 100644 --- a/src/main/scala/com/typesafe/sbt/packager/linux/LinuxPlugin.scala +++ b/src/main/scala/com/typesafe/sbt/packager/linux/LinuxPlugin.scala @@ -102,20 +102,17 @@ object LinuxPlugin extends AutoPlugin { */ def mapGenericFilesToLinux: Seq[Setting[_]] = Seq( // First we look at the src/linux files - linuxPackageMappings <++= (sourceDirectory in Linux) map { dir => - mapGenericMappingsToLinux(MappingsHelper contentOf dir, Users.Root, Users.Root)(identity) + linuxPackageMappings ++= { + val linuxContent = MappingsHelper.contentOf((sourceDirectory in Linux).value) + if (linuxContent.isEmpty) Seq.empty + else mapGenericMappingsToLinux(linuxContent, Users.Root, Users.Root)(identity) }, // Now we look at the src/universal files. - linuxPackageMappings <++= (packageName in Linux, mappings in Universal, defaultLinuxInstallLocation) map { - (pkg, mappings, installLocation) => - // TODO - More windows filters... - def isWindowsFile(f: (File, String)): Boolean = - f._2 endsWith ".bat" - - mapGenericMappingsToLinux(mappings filterNot isWindowsFile, Users.Root, Users.Root) { name => - installLocation + "/" + pkg + "/" + name - } - }, + linuxPackageMappings ++= getUniversalFolderMappings( + (packageName in Linux).value, + defaultLinuxInstallLocation.value, + (mappings in Universal).value + ), // Now we generate symlinks. linuxPackageSymlinks <++= (packageName in Linux, mappings in Universal, defaultLinuxInstallLocation) map { (pkg, mappings, installLocation) => @@ -236,4 +233,19 @@ object LinuxPlugin extends AutoPlugin { final def chdir(installLocation: String, packageName: String): String = s"$installLocation/$packageName" + private[this] def getUniversalFolderMappings(pkg: String, + installLocation: String, + mappings: Seq[(File, String)]): Seq[LinuxPackageMapping] = { + // TODO - More windows filters... + def isWindowsFile(f: (File, String)): Boolean = + f._2 endsWith ".bat" + + val filtered = mappings.filterNot(isWindowsFile) + + if (filtered.isEmpty) Seq.empty + else + mapGenericMappingsToLinux(filtered, Users.Root, Users.Root) { name => + installLocation + "/" + pkg + "/" + name + } + } }