diff --git a/src/main/resources/com/typesafe/sbt/packager/archetypes/java_server/systemloader/systemv/start-rpm-template b/src/main/resources/com/typesafe/sbt/packager/archetypes/java_server/systemloader/systemv/start-rpm-template index ffd1f56a5..a65b6d8a5 100644 --- a/src/main/resources/com/typesafe/sbt/packager/archetypes/java_server/systemloader/systemv/start-rpm-template +++ b/src/main/resources/com/typesafe/sbt/packager/archetypes/java_server/systemloader/systemv/start-rpm-template @@ -44,7 +44,7 @@ exec="$INSTALL_DIR/bin/${{exec}}" prog="${{app_name}}" lockfile="/var/lock/subsys/${{app_name}}" -RUN_CMD="$exec >> /var/log/${{app_name}}/${{rpm_daemon_log_file}} 2>&1 &" +RUN_CMD="$exec >> ${{logdir}}/${{app_name}}/${{rpm_daemon_log_file}} 2>&1 &" # $JAVA_OPTS used in $exec wrapper export JAVA_OPTS diff --git a/src/main/scala/com/typesafe/sbt/packager/linux/LinuxPlugin.scala b/src/main/scala/com/typesafe/sbt/packager/linux/LinuxPlugin.scala index b90968742..434aff158 100644 --- a/src/main/scala/com/typesafe/sbt/packager/linux/LinuxPlugin.scala +++ b/src/main/scala/com/typesafe/sbt/packager/linux/LinuxPlugin.scala @@ -80,6 +80,7 @@ object LinuxPlugin extends AutoPlugin { description = (packageSummary in Linux).value, execScript = (executableScriptName in Linux).value, chdir = s"${defaultLinuxInstallLocation.value}/${(packageName in Linux).value}", + logdir = defaultLinuxLogsLocation.value, appName = (packageName in Linux).value, version = sbt.Keys.version.value, daemonUser = (daemonUser in Linux).value, @@ -155,6 +156,7 @@ object LinuxPlugin extends AutoPlugin { description: String, execScript: String, chdir: String, + logdir: String, appName: String, version: String, daemonUser: String, @@ -172,6 +174,7 @@ object LinuxPlugin extends AutoPlugin { "descr" -> description, "exec" -> execScript, "chdir" -> chdir, + "logdir" -> logdir, "retries" -> retries.toString, "retryTimeout" -> retryTimeout.toString, "app_name" -> appName, diff --git a/src/sbt-test/rpm/path-override-rpm/build.sbt b/src/sbt-test/rpm/path-override-rpm/build.sbt new file mode 100644 index 000000000..c6fda4b81 --- /dev/null +++ b/src/sbt-test/rpm/path-override-rpm/build.sbt @@ -0,0 +1,40 @@ +enablePlugins(JavaServerAppPackaging) + +name := "rpm-test" + +version := "0.1.0" + +maintainer := "Josh Suereth " + +packageSummary := "Test rpm package" + +executableScriptName := "rpm-exec" + +packageDescription := """A fun package description of our software, + with multiple lines.""" + +rpmRelease := "1" + +rpmVendor := "typesafe" + +rpmUrl := Some("http://github.com/sbt/sbt-native-packager") + +rpmLicense := Some("BSD") + +defaultLinuxInstallLocation := "/opt/test" + +defaultLinuxLogsLocation := "/opt/test/log" + +TaskKey[Unit]("unzip") <<= (baseDirectory, packageBin in Rpm, streams) map { (baseDir, rpmFile, streams) => + val rpmPath = Seq(rpmFile.getAbsolutePath) + Process("rpm2cpio" , rpmPath) #| Process("cpio -i --make-directories") ! streams.log + () +} + +TaskKey[Unit]("check-init-file") <<= (baseDirectory, streams) map { (target, out) => + val initd = IO.read(target / "etc" / "init.d" / "rpm-test") + assert(initd contains "/opt/test/rpm-test", "defaultLinuxInstallLocation not overriden in init.d\n" + initd) + assert(initd contains "/opt/test/log/rpm-test/rpm-test.log", "defaultLinuxLogsLocation not overriden in init.d\n" + initd) + out.log.success("Successfully tested rpm-test file") + () +} diff --git a/src/sbt-test/rpm/path-override-rpm/project/plugins.sbt b/src/sbt-test/rpm/path-override-rpm/project/plugins.sbt new file mode 100644 index 000000000..b53de154c --- /dev/null +++ b/src/sbt-test/rpm/path-override-rpm/project/plugins.sbt @@ -0,0 +1 @@ +addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % sys.props("project.version")) diff --git a/src/sbt-test/rpm/path-override-rpm/src/main/scala/test/Main.scala b/src/sbt-test/rpm/path-override-rpm/src/main/scala/test/Main.scala new file mode 100644 index 000000000..638bef378 --- /dev/null +++ b/src/sbt-test/rpm/path-override-rpm/src/main/scala/test/Main.scala @@ -0,0 +1,10 @@ +package test + +object Main { + def main (args: Array[String]) { + //server app imitation + while (true){ + Thread.sleep(1000L) + } + } +} \ No newline at end of file diff --git a/src/sbt-test/rpm/path-override-rpm/test b/src/sbt-test/rpm/path-override-rpm/test new file mode 100644 index 000000000..5662e0959 --- /dev/null +++ b/src/sbt-test/rpm/path-override-rpm/test @@ -0,0 +1,10 @@ +# Run the rpm packaging. +> rpm:package-bin +$ exists target/rpm/RPMS/noarch/rpm-test-0.1.0-1.noarch.rpm + +> unzip +$ exists opt/test/rpm-test + +$ exists etc/init.d/rpm-test +> check-init-file +