diff --git a/src/main/resources/com/typesafe/sbt/packager/rpm/postuninstall b/src/main/resources/com/typesafe/sbt/packager/rpm/postuninstall index 447adf375..13c6a24ee 100644 --- a/src/main/resources/com/typesafe/sbt/packager/rpm/postuninstall +++ b/src/main/resources/com/typesafe/sbt/packager/rpm/postuninstall @@ -1,11 +1,12 @@ -# Adding system user/group : ${{daemon_user}} and ${{daemon_group}} -if ! getent group | grep -q "^${{daemon_group}}:" ; +# Removing system user/group : ${{daemon_user}} and ${{daemon_group}} +echo "Try deleting system user and group [${{daemon_user}}:${{daemon_group}}]" +if getent passwd | grep -q "^${{daemon_user}}:"; +then + echo "Deleting system user: ${{daemon_user}}" + userdel ${{daemon_user}} +fi +if getent group | grep -q "^${{daemon_group}}:" ; then echo "Deleting system group: ${{daemon_group}}" groupdel ${{daemon_group}} fi -if ! getent passwd | grep -q "^${{daemon_user}}:"; -then - echo "Deleting system user: ${{daemon_user}}" - userdel ${{daemon_user}} -fi \ No newline at end of file diff --git a/src/main/scala/com/typesafe/sbt/packager/archetypes/JavaServerApplication.scala b/src/main/scala/com/typesafe/sbt/packager/archetypes/JavaServerApplication.scala index 0a7324e1b..2c4b6a977 100644 --- a/src/main/scala/com/typesafe/sbt/packager/archetypes/JavaServerApplication.scala +++ b/src/main/scala/com/typesafe/sbt/packager/archetypes/JavaServerApplication.scala @@ -121,7 +121,7 @@ object JavaServerAppPackaging { Some(pre.map(_ + "\n").getOrElse("") + scriptBits) }, rpmPostun <<= (rpmPostun, linuxScriptReplacements) apply { (post, replacements) => - val scriptBits = TemplateWriter.generateScript(RpmPlugin.postinstTemplateSource, replacements) + val scriptBits = TemplateWriter.generateScript(RpmPlugin.postuninstallTemplateSource, replacements) Some(post.map(_ + "\n").getOrElse("") + scriptBits) } ) diff --git a/src/sbt-test/rpm/sysvinit-rpm/build.sbt b/src/sbt-test/rpm/sysvinit-rpm/build.sbt index 80da254b9..0340830cb 100644 --- a/src/sbt-test/rpm/sysvinit-rpm/build.sbt +++ b/src/sbt-test/rpm/sysvinit-rpm/build.sbt @@ -10,8 +10,7 @@ maintainer := "Josh Suereth " packageSummary := "Test rpm package" -packageDescription := """A fun package description of our software, - with multiple lines.""" +packageDescription := "Description" rpmRelease := "1" @@ -25,7 +24,12 @@ mainClass in (Compile, run) := Some("com.example.MainApp") TaskKey[Unit]("unzipAndCheck") <<= (packageBin in Rpm, streams) map { (rpmFile, streams) => val rpmPath = Seq(rpmFile.getAbsolutePath) - Process("rpm2cpio" , rpmPath) #| Process("cpio -i --make-directories") ! streams.log + Process("rpm2cpio" , rpmPath) #| Process("cpio -i --make-directories") ! streams.log + val scriptlets = Process("rpm -qp --scripts " + rpmFile.getAbsolutePath) !! streams.log + assert(scriptlets contains "groupadd --system rpm-test", "groupadd not present in \n" + scriptlets) + assert(scriptlets contains "useradd --gid rpm-test --no-create-home --system -c 'Test rpm package' rpm-test", "Incorrect useradd command in \n" + scriptlets) + assert(scriptlets contains "groupdel rpm-test", "groupdel not present in \n" + scriptlets) + assert(scriptlets contains "userdel rpm-test", "userdel rpm not present in \n" + scriptlets) // TODO check symlinks () }