diff --git a/src/main/resources/com/typesafe/sbt/packager/archetypes/java_server/rpm/preinst-template b/src/main/resources/com/typesafe/sbt/packager/archetypes/java_server/rpm/preinst-template index 4a1dff4d0..088b148f9 100644 --- a/src/main/resources/com/typesafe/sbt/packager/archetypes/java_server/rpm/preinst-template +++ b/src/main/resources/com/typesafe/sbt/packager/archetypes/java_server/rpm/preinst-template @@ -10,5 +10,12 @@ then addUser ${{daemon_user}} "${{daemon_user_uid}}" ${{daemon_group}} "${{app_name}} user-daemon" "${{daemon_shell}}" fi -[ -e /etc/sysconfig/${{app_name}} ] && sed -i 's/PACKAGE_PREFIX\=.*//g' /etc/sysconfig/${{app_name}} -[ -n "$RPM_INSTALL_PREFIX" ] && echo "PACKAGE_PREFIX=${RPM_INSTALL_PREFIX}" >> /etc/sysconfig/${{app_name}} +if [ -e /etc/sysconfig/${{app_name}} ] ; +then + sed -i 's/PACKAGE_PREFIX\=.*//g' /etc/sysconfig/${{app_name}} +fi + +if [ -n "$RPM_INSTALL_PREFIX" ] ; +then + echo "PACKAGE_PREFIX=${RPM_INSTALL_PREFIX}" >> /etc/sysconfig/${{app_name}} +fi 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 6f9a45e2b..ffd1f56a5 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 @@ -38,6 +38,7 @@ INSTALL_DIR="${{chdir}}" [ -n "${PACKAGE_PREFIX}" ] && INSTALL_DIR="${PACKAGE_PREFIX}/${{app_name}}" +cd $INSTALL_DIR exec="$INSTALL_DIR/bin/${{exec}}" prog="${{app_name}}" diff --git a/src/sbt-test/rpm/sysvinit-rpm/build.sbt b/src/sbt-test/rpm/sysvinit-rpm/build.sbt index 771cac1f3..f6488f8c2 100644 --- a/src/sbt-test/rpm/sysvinit-rpm/build.sbt +++ b/src/sbt-test/rpm/sysvinit-rpm/build.sbt @@ -32,6 +32,12 @@ TaskKey[Unit]("unzipAndCheck") <<= (baseDirectory, packageBin in Rpm, streams) m assert(scriptlets contains "deleteUser rpm-test", "deleteUser rpm not present in \n" + scriptlets) val startupScript = IO.read(baseDir / "etc" / "init.d" / "rpm-test") + assert(startupScript contains + """ + |INSTALL_DIR="/usr/share/rpm-test" + |[ -n "${PACKAGE_PREFIX}" ] && INSTALL_DIR="${PACKAGE_PREFIX}/rpm-test" + |cd $INSTALL_DIR + |""".stripMargin, "Ensuring application is running on the install directory is not present in \n" + startupScript) assert(startupScript contains """RUN_CMD="$exec >> /var/log/rpm-test/test.log 2>&1 &"""", "Setting key rpmDaemonLogFile not present in \n" + startupScript) // TODO check symlinks @@ -46,8 +52,15 @@ TaskKey[Unit]("check-spec-file") <<= (target, streams) map { (target, out) => assert(spec contains "deleteUser rpm-test", "deleteUser rpm not present in \n" + spec) assert(spec contains """ - |[ -e /etc/sysconfig/rpm-test ] && sed -i 's/PACKAGE_PREFIX\=.*//g' /etc/sysconfig/rpm-test - |[ -n "$RPM_INSTALL_PREFIX" ] && echo "PACKAGE_PREFIX=${RPM_INSTALL_PREFIX}" >> /etc/sysconfig/rpm-test + |if [ -e /etc/sysconfig/rpm-test ] ; + |then + | sed -i 's/PACKAGE_PREFIX\=.*//g' /etc/sysconfig/rpm-test + |fi + | + |if [ -n "$RPM_INSTALL_PREFIX" ] ; + |then + | echo "PACKAGE_PREFIX=${RPM_INSTALL_PREFIX}" >> /etc/sysconfig/rpm-test + |fi |""".stripMargin, "Persisting $RPM_INSTALL_PREFIX not present in \n" + spec) () }