diff options
Diffstat (limited to 'examples/scala-js/sbt-plugin/src/main/scala/scala/scalajs/sbtplugin/Implicits.scala')
-rw-r--r-- | examples/scala-js/sbt-plugin/src/main/scala/scala/scalajs/sbtplugin/Implicits.scala | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/examples/scala-js/sbt-plugin/src/main/scala/scala/scalajs/sbtplugin/Implicits.scala b/examples/scala-js/sbt-plugin/src/main/scala/scala/scalajs/sbtplugin/Implicits.scala new file mode 100644 index 0000000..0c1559f --- /dev/null +++ b/examples/scala-js/sbt-plugin/src/main/scala/scala/scalajs/sbtplugin/Implicits.scala @@ -0,0 +1,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 + } +} |