From 474c98f4a9b86c26e1000ff629ebf868446baa4d Mon Sep 17 00:00:00 2001 From: Alexey Kardapoltsev Date: Wed, 18 Dec 2013 09:11:52 +0600 Subject: [PATCH] /var/log/app_name permissions fixed --- .../typesafe/sbt/packager/GenericPackageSettings.scala | 1 + src/main/scala/com/typesafe/sbt/packager/Keys.scala | 1 + .../packager/archetypes/JavaServerApplication.scala | 10 +++++++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/scala/com/typesafe/sbt/packager/GenericPackageSettings.scala b/src/main/scala/com/typesafe/sbt/packager/GenericPackageSettings.scala index 455813b10..7ff7208e8 100644 --- a/src/main/scala/com/typesafe/sbt/packager/GenericPackageSettings.scala +++ b/src/main/scala/com/typesafe/sbt/packager/GenericPackageSettings.scala @@ -63,6 +63,7 @@ trait GenericPackageSettings // Default place to install code. defaultLinuxInstallLocation := "/usr/share", + defaultLinuxLogsLocation := "/var/log", // First we look at the src/linux files linuxPackageMappings <++= (sourceDirectory in Linux) map { dir => diff --git a/src/main/scala/com/typesafe/sbt/packager/Keys.scala b/src/main/scala/com/typesafe/sbt/packager/Keys.scala index 9644686f4..8cb7ad1ac 100644 --- a/src/main/scala/com/typesafe/sbt/packager/Keys.scala +++ b/src/main/scala/com/typesafe/sbt/packager/Keys.scala @@ -29,4 +29,5 @@ object Keys extends linux.Keys | APP_DEFINES - the defines to go into the app | """.stripMargin) val defaultLinuxInstallLocation = SettingKey[String]("defaultLinuxInstallLocation", "The location where we will install generic linux packages.") + val defaultLinuxLogsLocation = SettingKey[String]("defaultLinuxLogsLocation", "The location where application logs will be stored.") } \ 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 709f686cb..41daa8a7d 100644 --- a/src/main/scala/com/typesafe/sbt/packager/archetypes/JavaServerApplication.scala +++ b/src/main/scala/com/typesafe/sbt/packager/archetypes/JavaServerApplication.scala @@ -62,9 +62,13 @@ object JavaServerAppPackaging { s <- script.toSeq } yield LinuxPackageMapping(Seq(s -> path)).withPerms(permissions) }, - // TODO the /var/log should be generalized like defaultLinuxInstallLocation - linuxPackageMappings in Debian <+= (normalizedName) map { - name => packageTemplateMapping("/var/log/" + name)() + // TODO should we specify daemonGroup in configs? + linuxPackageMappings in Debian <+= (normalizedName, defaultLinuxLogsLocation, target in Debian, daemonUser in Debian) map { + (name, logsDir, target, user) => + // create empty var/log directory + val d = target / logsDir + d.mkdirs() + LinuxPackageMapping(Seq(d -> s"$logsDir/$name"), LinuxFileMetaData(user, user)) }, linuxPackageSymlinks in Debian <+= (normalizedName, defaultLinuxInstallLocation) map { (name, install) => LinuxSymlink(install + "/" + name + "/logs", "/var/log/" + name)