Skip to content

Commit 947af33

Browse files
committed
Merge pull request #130 from hindsightsoftware/SystemV-tweaks
Bring the SystemV init.d scripts inline with the Debian policies
2 parents 2a7db28 + 1648dbe commit 947af33

File tree

4 files changed

+23
-0
lines changed

4 files changed

+23
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
update-rc.d ${{app_name}} defaults
12
service ${{app_name}} start || echo "${{app_name}} could not be started. Try manually with service ${{app_name}} start"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
update-rc.d -f ${{app_name}} remove

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

+10
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ object JavaAppStartScript {
1515
protected def sysvinitTemplateSource: URL = getClass.getResource("sysvinit-template")
1616
protected def postinstTemplateSource: URL = getClass.getResource("postinst-template")
1717
protected def postinstSysvinitTemplateSource: URL = getClass.getResource("postinst-sysvinit-template")
18+
protected def postrmSysvinitTemplateSource: URL = getClass.getResource("postrm-sysvinit-template")
1819
protected def preremTemplateSource: URL = getClass.getResource("prerem-template")
1920

2021

@@ -30,6 +31,15 @@ object JavaAppStartScript {
3031
TemplateWriter.generateScript(template, Seq("app_name" -> appName))
3132

3233

34+
def generatePostrm(appName: String, loader: ServerLoader, template: Option[java.net.URL] = None): Option[String] =
35+
(template, loader) match {
36+
case (Some(template), _) => Option(TemplateWriter.generateScript(template, Seq("app_name" -> appName)))
37+
case (_, SystemV) =>
38+
Option(TemplateWriter.generateScript(postrmSysvinitTemplateSource, Seq("app_name" -> appName)))
39+
case (_, _) => None
40+
}
41+
42+
3343
def generatePostinst(appName: String, loader: ServerLoader, template: Option[java.net.URL] = None): String =
3444
(template, loader) match {
3545
// User has overriden the default.

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

+11
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ object JavaServerAppPackaging {
8585
},
8686
// TODO - only make these if the upstart config exists...
8787
debianMakePrermScript <<= (normalizedName, target in Universal) map makeDebianPrermScript,
88+
debianMakePostrmScript <<= (normalizedName, target in Universal, serverLoading in Debian) map makeDebianPostrmScript,
8889
debianMakePostinstScript <<= (normalizedName, target in Universal, serverLoading in Debian) map makeDebianPostinstScript)
8990

9091
private def makeDebianStartScript(
@@ -104,6 +105,16 @@ object JavaServerAppPackaging {
104105
Some(script)
105106
}
106107

108+
protected def makeDebianPostrmScript(name: String, tmpDir: File, loader: ServerLoader): Option[File] = {
109+
JavaAppStartScript.generatePostrm(name, loader) match {
110+
case Some(scriptBits) =>
111+
val script = tmpDir / "tmp" / "bin" / "debian-postrm"
112+
IO.write(script, scriptBits)
113+
Some(script)
114+
case None => None
115+
}
116+
}
117+
107118
protected def makeDebianPostinstScript(name: String, tmpDir: File, loader: ServerLoader): Option[File] = {
108119
val scriptBits = JavaAppStartScript.generatePostinst(name, loader)
109120
val script = tmpDir / "tmp" / "bin" / "debian-postinst"

0 commit comments

Comments
 (0)