Skip to content

Commit 996ac61

Browse files
committed
Merge pull request #411 from mhamrah/entrypoint
Better Entrypoint Support
2 parents 54d16c6 + b01b0c6 commit 996ac61

28 files changed

+167
-89
lines changed

src/main/scala/com/typesafe/sbt/packager/SettingsHelper.scala

+10-5
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,24 @@ object SettingsHelper {
2424
deliverLocalConfiguration <<= (crossTarget, ivyLoggingLevel) map { (outDir, level) => Classpaths.deliverConfig(outDir, logging = level) },
2525
deliverConfiguration <<= deliverLocalConfiguration,
2626
publishConfiguration <<= (packagedArtifacts, checksums, publishTo, isSnapshot) map { (as, checks, publishTo, isSnap) =>
27-
new PublishConfiguration(ivyFile = None,
27+
new PublishConfiguration(
28+
ivyFile = None,
2829
resolverName = Classpaths.getPublishTo(publishTo).name,
2930
artifacts = as,
3031
checksums = checks,
3132
logging = UpdateLogging.DownloadOnly,
32-
overwrite = isSnap)
33+
overwrite = isSnap
34+
)
3335
},
3436
publishLocalConfiguration <<= (packagedArtifacts, checksums, isSnapshot) map { (as, checks, isSnap) =>
35-
new PublishConfiguration(ivyFile = None,
37+
new PublishConfiguration(
38+
ivyFile = None,
3639
resolverName = "local",
3740
artifacts = as,
3841
checksums = checks,
3942
logging = UpdateLogging.DownloadOnly,
40-
overwrite = isSnap)
41-
})) ++ addPackage(config, packageTask, extension)
43+
overwrite = isSnap
44+
)
45+
}
46+
)) ++ addPackage(config, packageTask, extension)
4247
}

src/main/scala/com/typesafe/sbt/packager/archetypes/JavaApp.scala

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import sbt._
66
import sbt.Keys.{ mappings, target, name, mainClass, sourceDirectory }
77
import packager.Keys.{ packageName, executableScriptName }
88
import linux.{ LinuxFileMetaData, LinuxPackageMapping }
9-
import linux.LinuxPlugin.autoImport.{linuxPackageMappings, defaultLinuxInstallLocation}
9+
import linux.LinuxPlugin.autoImport.{ linuxPackageMappings, defaultLinuxInstallLocation }
1010
import SbtNativePackager.{ Universal, Debian }
1111

1212
/**
@@ -39,7 +39,7 @@ object JavaAppPackaging extends AutoPlugin with JavaAppStartScript {
3939
*/
4040
val batTemplate = "bat-template"
4141

42-
object autoImport extends JavaAppKeys
42+
object autoImport extends JavaAppKeys
4343

4444
import JavaAppPackaging.autoImport._
4545

@@ -95,7 +95,8 @@ object JavaAppPackaging extends AutoPlugin with JavaAppStartScript {
9595
val d = target / installLocation
9696
d.mkdirs()
9797
LinuxPackageMapping(Seq(d -> (installLocation + "/" + name)), LinuxFileMetaData())
98-
})
98+
}
99+
)
99100

100101
private def makeRelativeClasspathNames(mappings: Seq[(File, String)]): Seq[String] =
101102
for {

src/main/scala/com/typesafe/sbt/packager/archetypes/JavaAppBashScript.scala

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ object JavaAppBashScript {
2626
mainClass: String,
2727
appClasspath: Seq[String] = Seq("*"),
2828
configFile: Option[String] = None,
29-
extras: Seq[String] = Nil): Seq[String] =
29+
extras: Seq[String] = Nil
30+
): Seq[String] =
3031
Seq(mainClassDefine(mainClass)) ++
3132
(configFile map configFileDefine).toSeq ++
3233
Seq(makeClasspathDefine(appClasspath)) ++

src/main/scala/com/typesafe/sbt/packager/archetypes/JavaAppBatScript.scala

+4-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ object JavaAppBatScript {
2828
name: String,
2929
mainClass: String,
3030
appClasspath: Seq[String] = Seq("*"),
31-
extras: Seq[String] = Nil): Seq[(String, String)] = {
31+
extras: Seq[String] = Nil
32+
): Seq[(String, String)] = {
3233
val replacements = Seq(
3334
"APP_NAME" -> name,
3435
"APP_ENV_NAME" -> makeEnvFriendlyName(name)
@@ -50,7 +51,8 @@ object JavaAppBatScript {
5051
}
5152

5253
def generateScript(
53-
replacements: Seq[(String, String)], template: java.net.URL = bashTemplateSource): String =
54+
replacements: Seq[(String, String)], template: java.net.URL = bashTemplateSource
55+
): String =
5456
TemplateWriter.generateScript(template, replacements, "\r\n", TemplateWriter.batFriendlyKeySurround)
5557

5658
}

src/main/scala/com/typesafe/sbt/packager/archetypes/JavaAppKeys.scala

+4-2
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@ trait JavaAppKeys {
1717
val projectDependencyArtifacts = TaskKey[Seq[Attributed[File]]]("projectDependencyArtifacts", "The set of exported artifacts from our dependent projects.")
1818
val scriptClasspath = TaskKey[Seq[String]]("scriptClasspath", "A list of relative filenames (to the lib/ folder in the distribution) of what to include on the classpath.")
1919
val makeBatScript = TaskKey[Option[File]]("makeBatScript", "Creates or discovers the bat script used by this project.")
20-
val batScriptReplacements = TaskKey[Seq[(String, String)]]("batScriptReplacements",
20+
val batScriptReplacements = TaskKey[Seq[(String, String)]](
21+
"batScriptReplacements",
2122
"""|Replacements of template parameters used in the windows bat script.
2223
| Default supported templates:
2324
| APP_ENV_NAME - the name of the application for defining <name>_HOME variables
2425
| APP_NAME - the name of the app
2526
| APP_DEFINES - the defines to go into the app
26-
| """.stripMargin)
27+
| """.stripMargin
28+
)
2729
}

src/main/scala/com/typesafe/sbt/packager/archetypes/JavaServerApplication.scala

+10-5
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ object JavaServerAppPackaging extends AutoPlugin {
103103
debianMakePreinstScript <<= (target in Universal, serverLoading in Debian, linuxScriptReplacements) map makeMaintainerScript(Preinst),
104104
debianMakePostinstScript <<= (target in Universal, serverLoading in Debian, linuxScriptReplacements) map makeMaintainerScript(Postinst),
105105
debianMakePrermScript <<= (target in Universal, serverLoading in Debian, linuxScriptReplacements) map makeMaintainerScript(Prerm),
106-
debianMakePostrmScript <<= (target in Universal, serverLoading in Debian, linuxScriptReplacements) map makeMaintainerScript(Postrm))
106+
debianMakePostrmScript <<= (target in Universal, serverLoading in Debian, linuxScriptReplacements) map makeMaintainerScript(Postrm)
107+
)
107108
}
108109

109110
def rpmSettings: Seq[Setting[_]] = {
@@ -173,7 +174,8 @@ object JavaServerAppPackaging extends AutoPlugin {
173174
requiredStopFacilities: Option[String],
174175
startRunlevels: Option[String],
175176
stopRunlevels: Option[String],
176-
loader: ServerLoader): Seq[(String, String)] = {
177+
loader: ServerLoader
178+
): Seq[(String, String)] = {
177179

178180
// Upstart cannot handle empty values
179181
val (startOn, stopOn) = loader match {
@@ -238,9 +240,12 @@ object JavaServerAppPackaging extends AutoPlugin {
238240
Some(script)
239241
}
240242

241-
protected def makeMaintainerScript(scriptName: String,
242-
template: Option[URL] = None, archetype: String = ARCHETYPE, config: Configuration = Debian)(
243-
tmpDir: File, loader: ServerLoader, replacements: Seq[(String, String)]): Option[File] = {
243+
protected def makeMaintainerScript(
244+
scriptName: String,
245+
template: Option[URL] = None, archetype: String = ARCHETYPE, config: Configuration = Debian
246+
)(
247+
tmpDir: File, loader: ServerLoader, replacements: Seq[(String, String)]
248+
): Option[File] = {
244249
val scriptBits = JavaServerBashScript(scriptName, archetype, config, replacements, template) getOrElse {
245250
sys.error(s"Couldn't load [$scriptName] for config [${config.name}] in archetype [$archetype]")
246251
}

src/main/scala/com/typesafe/sbt/packager/archetypes/JavaServerBashScript.scala

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ object JavaServerBashScript {
4040
archetype: String,
4141
config: Configuration,
4242
replacements: Seq[(String, String)],
43-
template: Option[URL] = None): Option[String] = {
43+
template: Option[URL] = None
44+
): Option[String] = {
4445
// use template or else search for a default
4546
val url = template orElse {
4647
Option(getClass getResource s"$archetype/${config.name}/$script-template")

src/main/scala/com/typesafe/sbt/packager/archetypes/TemplateWriter.scala

+10-5
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,20 @@ object TemplateWriter {
3333
private def replace(
3434
line: String,
3535
replacements: Seq[(String, String)],
36-
keySurround: String => String): String = {
36+
keySurround: String => String
37+
): String = {
3738
replacements.foldLeft(line) {
3839
case (line, (key, value)) =>
3940
keySurround(key).r.replaceAllIn(line, java.util.regex.Matcher.quoteReplacement(value))
4041
}
4142
}
4243

43-
private def replaceValues(lines: Seq[String],
44+
private def replaceValues(
45+
lines: Seq[String],
4446
replacements: Seq[(String, String)],
4547
eol: String,
46-
keySurround: String => String): String = {
48+
keySurround: String => String
49+
): String = {
4750
val sb = new StringBuilder
4851
for (line <- lines) {
4952
sb append replace(line, replacements, keySurround)
@@ -57,7 +60,8 @@ object TemplateWriter {
5760
replacements: Seq[(String, String)],
5861
eol: String = "\n",
5962
keySurround: String => String = bashFriendlyKeySurround,
60-
charset: java.nio.charset.Charset = defaultCharset): String = {
63+
charset: java.nio.charset.Charset = defaultCharset
64+
): String = {
6165
val lines = sbt.IO.readLinesURL(source, charset)
6266
replaceValues(lines, replacements, eol, keySurround)
6367
}
@@ -67,7 +71,8 @@ object TemplateWriter {
6771
replacements: Seq[(String, String)],
6872
eol: String = "\n",
6973
keySurround: String => String = bashFriendlyKeySurround,
70-
charset: java.nio.charset.Charset = defaultCharset): String = {
74+
charset: java.nio.charset.Charset = defaultCharset
75+
): String = {
7176
replaceValues(source split eol, replacements, eol, keySurround)
7277
}
7378
}

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

+8-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ case class PackageInfo(
77
version: String,
88
maintainer: String,
99
summary: String,
10-
description: String)
10+
description: String
11+
)
1112

1213
/** Represents package meta used by debian when constructing packages. */
1314
case class PackageMetaData(
@@ -16,7 +17,8 @@ case class PackageMetaData(
1617
architecture: String = "all",
1718
section: String = "java",
1819
depends: Seq[String] = Seq.empty,
19-
recommends: Seq[String] = Seq.empty) {
20+
recommends: Seq[String] = Seq.empty
21+
) {
2022
def makeContent(installSizeEstimate: Long = 0L): String = {
2123
// TODO: Pretty print with line wrap.
2224
val sb = new StringBuilder
@@ -64,7 +66,8 @@ case class DebianControlScriptReplacements(
6466
author: String,
6567
descr: String,
6668
name: String,
67-
version: String) {
69+
version: String
70+
) {
6871

6972
/**
7073
* Generates the replacement sequence for the debian
@@ -74,5 +77,6 @@ case class DebianControlScriptReplacements(
7477
"author" -> author,
7578
"descr" -> descr,
7679
"name" -> name,
77-
"version" -> version)
80+
"version" -> version
81+
)
7882
}

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

+9-6
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ object DebianPlugin extends AutoPlugin with DebianNativePackaging {
7878

7979
// TODO maybe we can put settings/debiansettings together
8080
/**
81-
* Enables native packaging by default
81+
* Enables native packaging by default
8282
*/
8383
override lazy val projectSettings = settings ++ inConfig(Debian)(debianSettings) ++ debianNativeSettings
8484

@@ -115,12 +115,13 @@ object DebianPlugin extends AutoPlugin with DebianNativePackaging {
115115
debianMaintainerScripts <++= (debianMakePrermScript, debianControlScriptsDirectory) map scriptMapping(Names.Prerm),
116116
debianMaintainerScripts <++= (debianMakePreinstScript, debianControlScriptsDirectory) map scriptMapping(Names.Preinst),
117117
debianMaintainerScripts <++= (debianMakePostinstScript, debianControlScriptsDirectory) map scriptMapping(Names.Postinst),
118-
debianMaintainerScripts <++= (debianMakePostrmScript, debianControlScriptsDirectory) map scriptMapping(Names.Postrm))
118+
debianMaintainerScripts <++= (debianMakePostrmScript, debianControlScriptsDirectory) map scriptMapping(Names.Postrm)
119+
)
119120

120121
/**
121122
* == Debian scoped settings ==
122123
* Everything used inside the debian scope
123-
*
124+
*
124125
*/
125126
private def debianSettings: Seq[Setting[_]] = inConfig(Debian)(
126127
Seq(
@@ -141,7 +142,8 @@ object DebianPlugin extends AutoPlugin with DebianNativePackaging {
141142
if (data.info.description == null || data.info.description.isEmpty) {
142143
sys.error(
143144
"""packageDescription in Debian cannot be empty. Use
144-
packageDescription in Debian := "My package Description"""")
145+
packageDescription in Debian := "My package Description""""
146+
)
145147
}
146148
val cfile = dir / Names.Debian / Names.Control
147149
IO.write(cfile, data.makeContent(size), java.nio.charset.Charset.defaultCharset)
@@ -215,7 +217,8 @@ object DebianPlugin extends AutoPlugin with DebianNativePackaging {
215217
linuxScriptReplacements += ("header" -> "#!/bin/sh\nset -e")
216218

217219
// Adding package specific implementation settings
218-
))
220+
)
221+
)
219222

220223
}
221224

@@ -350,4 +353,4 @@ object DebianDeployPlugin extends AutoPlugin {
350353
override def projectSettings =
351354
SettingsHelper.makeDeploymentSettings(Debian, packageBin in Debian, "deb") ++
352355
SettingsHelper.makeDeploymentSettings(Debian, genChanges in Debian, "changes")
353-
}
356+
}

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

+6-7
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.typesafe.sbt
22
package packager
33
package debian
44

5-
65
import com.typesafe.sbt.packager.archetypes.TemplateWriter
76
import com.typesafe.sbt.packager.universal.Archives
87
import sbt._
@@ -49,7 +48,8 @@ object JDebPackaging extends AutoPlugin with DebianPluginLike {
4948
if (data.info.description == null || data.info.description.isEmpty) {
5049
sys.error(
5150
"""packageDescription in Debian cannot be empty. Use
52-
packageDescription in Debian := "My package Description"""")
51+
packageDescription in Debian := "My package Description""""
52+
)
5353
}
5454
val cfile = dir / Names.Debian / Names.Control
5555
IO.write(cfile, data.makeContent(size), java.nio.charset.Charset.defaultCharset)
@@ -83,7 +83,8 @@ object JDebPackaging extends AutoPlugin with DebianPluginLike {
8383
val console = new JDebConsole(log)
8484
val archive = archiveFilename(normalizedName.value, version.value, packageArchitecture.value)
8585
val debianFile = targetDir.getParentFile / archive
86-
val debMaker = new DebMaker(console,
86+
val debMaker = new DebMaker(
87+
console,
8788
fileAndDirectoryProducers(mappings, targetDir) ++ linkProducers(symlinks),
8889
conffileProducers(mappings, targetDir)
8990
)
@@ -95,8 +96,8 @@ object JDebPackaging extends AutoPlugin with DebianPluginLike {
9596
debMaker validate ()
9697
debMaker makeDeb ()
9798
debianFile
98-
})
99-
99+
}
100+
)
100101

101102
/**
102103
* The same as [[DebianPluginLike.copyAndFixPerms]] except chmod invocation (for windows compatibility).
@@ -113,7 +114,6 @@ object JDebPackaging extends AutoPlugin with DebianPluginLike {
113114
} else IO.copyFile(from, to, true)
114115
}
115116

116-
117117
/**
118118
* The same as [[DebianPluginLike.filterAndFixPerms]] except chmod invocation (for windows compatibility).
119119
* Permissions will be handled by jDeb packager itself.
@@ -125,7 +125,6 @@ object JDebPackaging extends AutoPlugin with DebianPluginLike {
125125
script
126126
}
127127

128-
129128
/**
130129
* Creating file and directory producers. These "produce" the
131130
* files for the debian packaging.

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

+4-2
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@ trait DebianKeys {
3232
val genChanges = TaskKey[File]("gen-changes", "runs the dpkg-genchanges command to generate the .changes file.")
3333

3434
// Debian control scripts
35-
val debianControlScriptsDirectory = SettingKey[File]("debian-control-scripts-directory",
36-
"Directory where all debian control scripts reside. Default is 'src/debian/DEBIAN'")
35+
val debianControlScriptsDirectory = SettingKey[File](
36+
"debian-control-scripts-directory",
37+
"Directory where all debian control scripts reside. Default is 'src/debian/DEBIAN'"
38+
)
3739
val debianMakePreinstScript = TaskKey[Option[File]]("makePreinstScript", "Creates or discovers the preinst script used by this project")
3840
val debianMakePrermScript = TaskKey[Option[File]]("makePrermScript", "Creates or discovers the prerm script used by this project")
3941
val debianMakePostinstScript = TaskKey[Option[File]]("makePostInstScript", "Creates or discovers the postinst script used by this project")

0 commit comments

Comments
 (0)