Skip to content

Commit d55169e

Browse files
committed
FIX #676 adding configuration scopes to project configurations
1 parent 1fb9724 commit d55169e

File tree

7 files changed

+47
-33
lines changed

7 files changed

+47
-33
lines changed

src/main/scala/com/typesafe/sbt/packager/debian/DebianPlugin.scala

+28-26
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ object DebianPlugin extends AutoPlugin with DebianNativePackaging {
6767

6868
val CHOWN_REPLACEMENT = "chown-paths"
6969

70+
override def projectConfigurations: Seq[Configuration] = Seq(Debian)
71+
7072
// TODO maybe we can put settings/debiansettings together
7173
/**
7274
* Enables native packaging by default
@@ -107,36 +109,36 @@ object DebianPlugin extends AutoPlugin with DebianNativePackaging {
107109
maintainerScripts in Debian := {
108110
val replacements = (linuxScriptReplacements in Debian).value
109111
val scripts = Map(
110-
Names.Prerm -> defaultMaintainerScript(Names.Prerm).toSeq.flatten,
111-
Names.Preinst -> defaultMaintainerScript(Names.Preinst).toSeq.flatten,
112-
Names.Postinst -> defaultMaintainerScript(Names.Postinst).toSeq.flatten,
113-
Names.Postrm -> defaultMaintainerScript(Names.Postrm).toSeq.flatten
112+
Names.Prerm -> defaultMaintainerScript(Names.Prerm).toSeq.flatten,
113+
Names.Preinst -> defaultMaintainerScript(Names.Preinst).toSeq.flatten,
114+
Names.Postinst -> defaultMaintainerScript(Names.Postinst).toSeq.flatten,
115+
Names.Postrm -> defaultMaintainerScript(Names.Postrm).toSeq.flatten
114116
)
115117

116118
// this is for legacy purposes to keep old behaviour
117119
// --- legacy starts
118120
def readContent(scriptFiles: Seq[(File, String)]): Map[String, Seq[String]] = scriptFiles.map {
119-
case (scriptFile, scriptName) => scriptName -> IO.readLines(scriptFile)
121+
case (scriptFile, scriptName) => scriptName -> IO.readLines(scriptFile)
120122
}.toMap
121123

122124
val userProvided = readContent(Seq(
123-
debianMakePreinstScript.value.map(script => script -> Names.Preinst),
124-
debianMakePostinstScript.value.map(script => script -> Names.Postinst),
125-
debianMakePrermScript.value.map(script => script -> Names.Prerm),
126-
debianMakePostrmScript.value.map(script => script -> Names.Postrm)
125+
debianMakePreinstScript.value.map(script => script -> Names.Preinst),
126+
debianMakePostinstScript.value.map(script => script -> Names.Postinst),
127+
debianMakePrermScript.value.map(script => script -> Names.Prerm),
128+
debianMakePostrmScript.value.map(script => script -> Names.Postrm)
127129
).flatten)
128130

129131
// these things get appended. Don't check for nonexisting keys as they are already in the default scripts map
130132
val appendedScripts = scripts.map {
131-
case (scriptName, content) => scriptName -> (content ++ userProvided.getOrElse(scriptName, Nil))
133+
case (scriptName, content) => scriptName -> (content ++ userProvided.getOrElse(scriptName, Nil))
132134
}
133135
// override and merge with the user defined scripts. Will change in the future
134136
val controlScriptsDir = debianControlScriptsDirectory.value
135137
val overridenScripts = scripts ++ readContent(Seq(
136-
scriptMapping(Names.Prerm, debianMakePrermScript.value, controlScriptsDir),
137-
scriptMapping(Names.Preinst, debianMakePreinstScript.value, controlScriptsDir),
138-
scriptMapping(Names.Postinst, debianMakePostinstScript.value, controlScriptsDir),
139-
scriptMapping(Names.Postrm, debianMakePostrmScript.value, controlScriptsDir)
138+
scriptMapping(Names.Prerm, debianMakePrermScript.value, controlScriptsDir),
139+
scriptMapping(Names.Preinst, debianMakePreinstScript.value, controlScriptsDir),
140+
scriptMapping(Names.Postinst, debianMakePostinstScript.value, controlScriptsDir),
141+
scriptMapping(Names.Postrm, debianMakePostrmScript.value, controlScriptsDir)
140142
).flatten)
141143
// --- legacy ends
142144

@@ -145,7 +147,7 @@ object DebianPlugin extends AutoPlugin with DebianNativePackaging {
145147

146148
// apply all replacements
147149
content.mapValues { lines =>
148-
TemplateWriter.generateScriptFromLines(lines, replacements)
150+
TemplateWriter.generateScriptFromLines(lines, replacements)
149151
}
150152
},
151153
debianMaintainerScripts := generateDebianMaintainerScripts(
@@ -182,14 +184,14 @@ object DebianPlugin extends AutoPlugin with DebianNativePackaging {
182184
packageDescription in Debian := "My package Description""""
183185
)
184186
}
185-
val cfile = dir / Names.DebianMaintainerScripts / Names.Control
187+
val cfile = dir / Names.DebianMaintainerScripts / Names.Control
186188
IO.write(cfile, data.makeContent(size), java.nio.charset.Charset.defaultCharset)
187189
chmod(cfile, "0644")
188190
cfile
189191
},
190192
debianConffilesFile <<= (linuxPackageMappings, target) map {
191193
(mappings, dir) =>
192-
val cfile = dir / Names.DebianMaintainerScripts / Names.Conffiles
194+
val cfile = dir / Names.DebianMaintainerScripts / Names.Conffiles
193195
val conffiles = for {
194196
LinuxPackageMapping(files, meta, _) <- mappings
195197
if meta.config != "false"
@@ -202,11 +204,11 @@ object DebianPlugin extends AutoPlugin with DebianNativePackaging {
202204
},
203205
debianMD5sumsFile <<= (debianExplodedPackage, target) map {
204206
(mappings, dir) =>
205-
val md5file = dir / Names.DebianMaintainerScripts / "md5sums"
207+
val md5file = dir / Names.DebianMaintainerScripts / "md5sums"
206208
val md5sums = for {
207209
(file, name) <- (dir.*** --- dir pair relativeTo(dir))
208210
if file.isFile
209-
if !(name startsWith Names.DebianMaintainerScripts)
211+
if !(name startsWith Names.DebianMaintainerScripts)
210212
if !(name contains "debian-binary")
211213
// TODO - detect symlinks with Java7 (when we can) rather than hackery...
212214
if file.getCanonicalPath == file.getAbsolutePath
@@ -219,7 +221,7 @@ object DebianPlugin extends AutoPlugin with DebianNativePackaging {
219221
debianMakeChownReplacements <<= (linuxPackageMappings, streams) map makeChownReplacements,
220222
debianExplodedPackage <<= (linuxPackageMappings, debianControlFile, debianMaintainerScripts, debianConffilesFile, debianChangelog,
221223
linuxScriptReplacements, debianMakeChownReplacements, linuxPackageSymlinks, target, streams)
222-
map { (mappings, _, maintScripts, _, changelog, replacements, chown, symlinks, t, streams) =>
224+
map { (mappings, _, maintScripts, _, changelog, replacements, chown, symlinks, t, streams) =>
223225

224226
// Create files and directories
225227
mappings foreach {
@@ -244,7 +246,7 @@ object DebianPlugin extends AutoPlugin with DebianNativePackaging {
244246
// Put the maintainer files in `dir / "DEBIAN"` named as specified.
245247
// Valid values for the name are preinst,postinst,prerm,postrm
246248
for ((file, name) <- maintScripts) {
247-
val targetFile = t / Names.DebianMaintainerScripts / name
249+
val targetFile = t / Names.DebianMaintainerScripts / name
248250
copyAndFixPerms(file, targetFile, LinuxFileMetaData())
249251
filterAndFixPerms(targetFile, chown +: replacements, LinuxFileMetaData())
250252
}
@@ -281,10 +283,10 @@ trait DebianPluginLike {
281283

282284
scripts.map {
283285
case (scriptName, content) =>
284-
val scriptBits = TemplateWriter.generateScriptFromLines(content, replacements)
285-
val script = tmpDir / "tmp" / "debian" / scriptName
286-
IO.write(script, scriptBits mkString "\n")
287-
script -> scriptName
286+
val scriptBits = TemplateWriter.generateScriptFromLines(content, replacements)
287+
val script = tmpDir / "tmp" / "debian" / scriptName
288+
IO.write(script, scriptBits mkString "\n")
289+
script -> scriptName
288290
}.toList
289291
}
290292

@@ -350,7 +352,7 @@ trait DebianPluginLike {
350352
(script, controlDir) match {
351353
// check if user defined script exists
352354
case (_, dir) if (dir / scriptName).exists =>
353-
Some(file((dir / scriptName).getAbsolutePath) -> scriptName)
355+
Some(file((dir / scriptName).getAbsolutePath) -> scriptName)
354356
// create mappings for generated script
355357
case (scr, _) => scr.map(_ -> scriptName)
356358
}

src/main/scala/com/typesafe/sbt/packager/docker/DockerPlugin.scala

+2
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ object DockerPlugin extends AutoPlugin {
6565

6666
override def requires = universal.UniversalPlugin
6767

68+
override def projectConfigurations: Seq[Configuration] = Seq(Docker)
69+
6870
override lazy val projectSettings = Seq(
6971
dockerBaseImage := "java:latest",
7072
dockerExposedPorts := Seq(),

src/main/scala/com/typesafe/sbt/packager/jdkpackager/JDKPackagerPlugin.scala

+2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ object JDKPackagerPlugin extends AutoPlugin {
3131
override def requires = JavaAppPackaging && LauncherJarPlugin
3232
private val dirname = JDKPackager.name.toLowerCase
3333

34+
override def projectConfigurations: Seq[Configuration] = Seq(JDKPackager)
35+
3436
override lazy val projectSettings = Seq(
3537
jdkAppIcon := None,
3638
jdkPackagerType := "installer",

src/main/scala/com/typesafe/sbt/packager/linux/LinuxPlugin.scala

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ object LinuxPlugin extends AutoPlugin {
2929

3030
import autoImport._
3131

32+
override def projectConfigurations: Seq[Configuration] = Seq(Linux)
33+
3234
/** default users available for */
3335
object Users {
3436
val Root = "root"

src/main/scala/com/typesafe/sbt/packager/rpm/RpmPlugin.scala

+9-7
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ object RpmPlugin extends AutoPlugin {
5757

5858
}
5959

60+
override def projectConfigurations: Seq[Configuration] = Seq(Rpm)
61+
6062
override lazy val projectSettings = Seq(
6163
rpmOs := "Linux", // TODO - default to something else?
6264
rpmRelease := "1",
@@ -105,14 +107,14 @@ object RpmPlugin extends AutoPlugin {
105107
rpmDependencies <<=
106108
(rpmProvides, rpmRequirements, rpmPrerequisites, rpmObsoletes, rpmConflicts) apply RpmDependencies,
107109
maintainerScripts := {
108-
val scripts = maintainerScripts.value
109-
if (rpmBrpJavaRepackJars.value) {
110-
val pre = scripts.getOrElse(Names.Pre, Nil)
110+
val scripts = maintainerScripts.value
111+
if (rpmBrpJavaRepackJars.value) {
112+
val pre = scripts.getOrElse(Names.Pre, Nil)
111113
val scriptBits = IO.readStream(RpmPlugin.osPostInstallMacro.openStream, Charset forName "UTF-8")
112-
scripts + (Names.Pre -> (pre :+ scriptBits))
113-
} else {
114-
scripts
115-
}
114+
scripts + (Names.Pre -> (pre :+ scriptBits))
115+
} else {
116+
scripts
117+
}
116118
},
117119
rpmScripts := RpmScripts.fromMaintainerScripts(maintainerScripts.value),
118120
rpmSpecConfig <<=

src/main/scala/com/typesafe/sbt/packager/universal/UniversalPlugin.scala

+2
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ object UniversalPlugin extends AutoPlugin {
5454

5555
override def requires = SbtNativePackager
5656

57+
override def projectConfigurations: Seq[Configuration] = Seq(Universal, UniversalDocs, UniversalSrc)
58+
5759
/** The basic settings for the various packaging types. */
5860
override lazy val projectSettings = Seq[Setting[_]](
5961
// For now, we provide delegates from dist/stage to universal...

src/main/scala/com/typesafe/sbt/packager/windows/WindowsPlugin.scala

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ object WindowsPlugin extends AutoPlugin {
3939
override lazy val projectSettings = windowsSettings ++ mapGenericFilesToWindows
4040
override def requires = universal.UniversalPlugin
4141

42+
override def projectConfigurations: Seq[Configuration] = Seq(Windows)
43+
4244
/**
4345
* default windows settings
4446
*/

0 commit comments

Comments
 (0)