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
}