@@ -7,6 +7,7 @@ package com.lightbend.sbt.javaagent
7
7
import sbt ._
8
8
import sbt .Keys ._
9
9
import com .typesafe .sbt .packager .archetypes .JavaAppPackaging .autoImport .bashScriptExtraDefines
10
+ import com .typesafe .sbt .packager .archetypes .JavaAppPackaging .autoImport .batScriptExtraDefines
10
11
import com .typesafe .sbt .packager .universal .UniversalPlugin .autoImport .Universal
11
12
import java .io .File
12
13
@@ -22,7 +23,8 @@ object JavaAgentPackaging extends AutoPlugin {
22
23
23
24
override def projectSettings = Seq (
24
25
mappings in Universal ++= agentMappings.value.map(m => m._1 -> m._2),
25
- bashScriptExtraDefines ++= agentScriptOptions.value
26
+ bashScriptExtraDefines ++= agentBashScriptOptions.value,
27
+ batScriptExtraDefines ++= agentBatScriptOptions.value
26
28
)
27
29
28
30
private def agentMappings = Def .task[Seq [(File , String , String )]] {
@@ -33,14 +35,26 @@ object JavaAgentPackaging extends AutoPlugin {
33
35
}
34
36
}
35
37
36
- private def agentScriptOptions = Def .task[Seq [String ]] {
38
+ private def agentBashScriptOptions = Def .task[Seq [String ]] {
37
39
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" """
39
41
}
40
42
}
41
43
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)
44
58
}
45
59
46
60
/**
0 commit comments