Skip to content

Commit 737f00d

Browse files
committed
Merge pull request #691 from rozky/master
Allow to override systemd start script name
2 parents 43c36c7 + a3b777b commit 737f00d

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

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

+8-6
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ object JavaServerAppPackaging extends AutoPlugin {
6464
if (overrideScript.exists) overrideScript.toURI.toURL
6565
else etcDefaultTemplateSource
6666
},
67+
linuxStartScriptName := None,
6768
makeEtcDefault <<= (packageName in Linux, target in Universal, linuxEtcDefaultTemplate, linuxScriptReplacements)
6869
map makeEtcDefaultScript,
6970
linuxPackageMappings <++= (makeEtcDefault, bashScriptEnvConfigLocation) map { (conf, envLocation) =>
@@ -102,7 +103,7 @@ object JavaServerAppPackaging extends AutoPlugin {
102103
linuxScriptReplacements in Debian,
103104
target in Universal,
104105
serverLoading in Debian) map makeStartScript,
105-
linuxPackageMappings <++= (packageName, linuxMakeStartScript, serverLoading, defaultLinuxStartScriptLocation) map startScriptMapping
106+
linuxPackageMappings <++= (packageName, linuxMakeStartScript, serverLoading, defaultLinuxStartScriptLocation, linuxStartScriptName) map startScriptMapping
106107
)) ++ Seq(
107108
// === Daemon User and Group ===
108109
daemonUser in Debian <<= daemonUser in Linux,
@@ -154,7 +155,8 @@ object JavaServerAppPackaging extends AutoPlugin {
154155
serverLoading in Rpm) map makeStartScript,
155156

156157
defaultLinuxStartScriptLocation in Rpm <<= (serverLoading in Rpm) apply getStartScriptLocation,
157-
linuxPackageMappings in Rpm <++= (packageName in Rpm, linuxMakeStartScript in Rpm, serverLoading in Rpm, defaultLinuxStartScriptLocation in Rpm) map startScriptMapping,
158+
linuxStartScriptName in Rpm <<= linuxStartScriptName in Linux,
159+
linuxPackageMappings in Rpm <++= (packageName in Rpm, linuxMakeStartScript in Rpm, serverLoading in Rpm, defaultLinuxStartScriptLocation in Rpm, linuxStartScriptName in Rpm) map startScriptMapping,
158160

159161
// == Maintainer scripts ===
160162
// TODO this is very basic - align debian and rpm plugin
@@ -235,11 +237,11 @@ object JavaServerAppPackaging extends AutoPlugin {
235237
}
236238
}
237239

238-
protected def startScriptMapping(name: String, script: Option[File], loader: ServerLoader, scriptDir: String): Seq[LinuxPackageMapping] = {
240+
protected def startScriptMapping(name: String, script: Option[File], loader: ServerLoader, scriptDir: String, scriptName: Option[String]): Seq[LinuxPackageMapping] = {
239241
val (path, permissions, isConf) = loader match {
240-
case Upstart => ("/etc/init/" + name + ".conf", "0644", "true")
241-
case SystemV => ("/etc/init.d/" + name, "0755", "false")
242-
case Systemd => ("/usr/lib/systemd/system/" + name + ".service", "0644", "true")
242+
case Upstart => ("/etc/init/" + scriptName.getOrElse(name + ".conf"), "0644", "true")
243+
case SystemV => ("/etc/init.d/" + scriptName.getOrElse(name), "0755", "false")
244+
case Systemd => ("/usr/lib/systemd/system/" + scriptName.getOrElse(name + ".service"), "0644", "true")
243245
}
244246
for {
245247
s <- script.toSeq

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

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ trait LinuxKeys {
2626

2727
val linuxMakeStartScript = TaskKey[Option[File]]("makeStartScript", "Creates or discovers the start script used by this project")
2828
val linuxStartScriptTemplate = TaskKey[URL]("linuxStartScriptTemplate", "The location of the template start script file we use for debian (upstart or init.d")
29+
val linuxStartScriptName = SettingKey[Option[String]]("linuxStartScriptName", "The name of the start script for debian (primary useful for systemd)")
2930
val linuxEtcDefaultTemplate = TaskKey[URL]("linuxEtcDefaultTemplate", "The location of the /etc/default/<pkg> template script.")
3031
val linuxScriptReplacements = SettingKey[Seq[(String, String)]](
3132
"linuxScriptReplacements",

0 commit comments

Comments
 (0)