summaryrefslogtreecommitdiff
path: root/examples/scala-js/sbt-plugin/src/main/scala/scala/scalajs/sbtplugin/Implicits.scala
blob: 0c1559f0c68eb12671fa84a46050c657d3535a96 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package scala.scalajs.sbtplugin

import scala.language.implicitConversions

import scala.scalajs.tools.logging._
import sbt.{Logger => SbtLogger, Level => SbtLevel}

object Implicits {
  private class SbtLoggerWrapper(underlying: SbtLogger) extends Logger {
    def log(level: Level, message: => String): Unit =
      underlying.log(level, message)
    def success(message: => String): Unit =
      underlying.success(message)
    def trace(t: => Throwable): Unit =
      underlying.trace(t)
  }

  implicit def sbtLogger2ToolsLogger(logger: SbtLogger): Logger =
    new SbtLoggerWrapper(logger)

  implicit def sbtLevel2ToolsLevel(level: SbtLevel.Value): Level = level match {
    case SbtLevel.Error => Level.Error
    case SbtLevel.Warn  => Level.Warn
    case SbtLevel.Info  => Level.Info
    case SbtLevel.Debug => Level.Debug
  }

  implicit def toolsLevel2sbtLevel(level: Level): SbtLevel.Value = level match {
    case Level.Error => SbtLevel.Error
    case Level.Warn  => SbtLevel.Warn
    case Level.Info  => SbtLevel.Info
    case Level.Debug => SbtLevel.Debug
  }
}