3

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
}
reikje
  • 2,850
  • 2
  • 24
  • 44

1 Answers1

3

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
}
Dale Wijnand
  • 6,054
  • 5
  • 28
  • 55