Skip to content

Commit 02bd0de

Browse files
author
Henrik Engstrom (@h3nk3)
authored
Merge pull request #6 from bantonsson/support-bat-scripts
Add support for bat scripts
2 parents bfee383 + bd5889e commit 02bd0de

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

src/main/scala/com/lightbend/sbt/javaagent/JavaAgentPackaging.scala

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ package com.lightbend.sbt.javaagent
77
import sbt._
88
import sbt.Keys._
99
import com.typesafe.sbt.packager.archetypes.JavaAppPackaging.autoImport.bashScriptExtraDefines
10+
import com.typesafe.sbt.packager.archetypes.JavaAppPackaging.autoImport.batScriptExtraDefines
1011
import com.typesafe.sbt.packager.universal.UniversalPlugin.autoImport.Universal
1112
import java.io.File
1213

@@ -22,7 +23,8 @@ object JavaAgentPackaging extends AutoPlugin {
2223

2324
override def projectSettings = Seq(
2425
mappings in Universal ++= agentMappings.value.map(m => m._1 -> m._2),
25-
bashScriptExtraDefines ++= agentScriptOptions.value
26+
bashScriptExtraDefines ++= agentBashScriptOptions.value,
27+
batScriptExtraDefines ++= agentBatScriptOptions.value
2628
)
2729

2830
private def agentMappings = Def.task[Seq[(File, String, String)]] {
@@ -33,14 +35,26 @@ object JavaAgentPackaging extends AutoPlugin {
3335
}
3436
}
3537

36-
private def agentScriptOptions = Def.task[Seq[String]] {
38+
private def agentBashScriptOptions = Def.task[Seq[String]] {
3739
agentMappings.value map {
38-
case (_, path, arguments) => s"""addJava "-javaagent:$${app_home}/../${normalizePath(path)}$arguments" """
40+
case (_, path, arguments) => s"""addJava "-javaagent:$${app_home}/../${normalizeBashPath(path)}$arguments" """
3941
}
4042
}
4143

42-
private def normalizePath(path: String, separator: Char = File.separatorChar): String = {
43-
if (separator == '/') path else path.replace(separator, '/')
44+
private def normalizeBashPath(path: String, separator: Char = File.separatorChar): String =
45+
normalizePath(path, '/')
46+
47+
private def agentBatScriptOptions = Def.task[Seq[String]] {
48+
agentMappings.value map {
49+
case (_, path, arguments) => s"""set _JAVA_OPTS=-javaagent:%@@APP_ENV_NAME@@_HOME%\\${normalizeBatPath(path)}$arguments %_JAVA_OPTS%"""
50+
}
51+
}
52+
53+
private def normalizeBatPath(path: String, separator: Char = File.separatorChar): String =
54+
normalizePath(path, '\\')
55+
56+
private def normalizePath(path: String, expected: Char, actual: Char = File.separatorChar): String = {
57+
if (actual == expected) path else path.replace(actual, expected)
4458
}
4559

4660
/**

0 commit comments

Comments
 (0)