I'm using the plugin sbt-assembly
(version 0.13.0), and I would like to call assemblyPackageDependency
with or without appendContentHash
depending on some InputKey
Basically, I would like to do something like this:
lazy val isGlobalCached = InputKey[Boolean]("")
lazy val myTask = taskKey[sbt.File]("myTask")
myTask := {
if (isGlobalCached.value)
//run with the modified assemblyOption
//assemblyOption in assemblyPackageDependency ~= { x => x.copy(appendContentHash = true) }
assemblyPackageDependency.value
else
assemblyPackageDependency.value
}
but I can't figure out how to set the assemblyOption
only if the condition is true, and not globally
Here are a couple of things I tried that didn't work:
lazy val isGlobalCached = InputKey[Boolean]("")
lazy val myTask = taskKey[sbt.File]("myTask")
lazy val assemblyPackageDependencyWithHash = taskKey[sbt.File]("assemblyPackageDependencyWithHash")
assemblyPackageDependencyWithHash <<= assemblyPackageDependency
assemblyOption in assemblyPackageDependencyWithHash ~= { x => x.copy(appendContentHash = true) }
myTask := {
//run with the modified assemblyOption
if (isGlobalCached.value)
assemblyPackageDependencyWithHash.value
else
assemblyPackageDependency.value
}
and:
lazy val isGlobalCached = InputKey[Boolean]("")
lazy val myTask = taskKey[sbt.File]("myTask")
lazy val globalCacheConf = config("globalCacheConf")
assemblyOption in globalCacheConf := (assemblyOption in assemblyPackageDependency).value.copy(appendContentHash = true)
myTask := {
//run with the modified assemblyOption
if (isGlobalCached.value)
assemblyPackageDependency.in(globalCacheConf).value
else
assemblyPackageDependency.value
}