I am writing a Command and want to use the Logger
in TaskStreams
but this is not possible since you cannot access .value
of a SettingKey in a Command. Is there some way?
def myCommand = Command.single("myCommand") {
case (currentState, userInput) =>
val extracted = Project.extract(currentState)
val log = streams.value.log <--- not allowed
log.info("Some logging")
currentState
}
streams
is intended for tasks, not commands.
So one way is to create a "holder" TaskKey
and get a stream of that, for instance sbt-pgp creates and uses pgpCmdContext
- see the definition of pgp-cmd.
Another way is using sLog
, but I'm not sure if sLog
should be used here:
val myCommand = Command.single("myCommand") { case (s, arg) =>
val extracted = Project extract s
val log = extracted get sLog
log info "Some logging"
currentState
}