diff --git a/.gitignore b/.gitignore index c58d83b3..b735d504 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,10 @@ src_managed/ project/boot/ project/plugins/project/ +# ensime +.ensime +.ensime_cache/ + # Scala-IDE specific .scala_dependencies .worksheet diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..f6112b67 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,17 @@ +language: scala +sudo: required +scala: + - 2.11.7 +jdk: + - oraclejdk8 +cache: + directories: + - $HOME/.coursier/cache + - $HOME/.ivy2/cache + - $HOME/.sbt/boot/ +env: + global: + JAVA_OPTS=-Xmx2g + SBT_OPTS="-XX:+UseConcMarkSweepGC -XX:MaxPermSize=512m" +script: + - sbt test \ No newline at end of file diff --git a/build.sbt b/build.sbt new file mode 100644 index 00000000..7cd6720c --- /dev/null +++ b/build.sbt @@ -0,0 +1,13 @@ +scalaVersion := "2.11.8" + +lazy val http4sVersion = "0.15.0-SNAPSHOT" + +resolvers += Resolver.sonatypeRepo("snapshots") + +libraryDependencies ++= Seq( + "org.http4s" %% "http4s-dsl" % http4sVersion, + "org.http4s" %% "http4s-blaze-server" % http4sVersion, + "org.http4s" %% "http4s-blaze-client" % http4sVersion, + "org.log4s" %% "log4s" % "1.3.0", + "org.slf4j" % "slf4j-simple" % "1.7.21" +) diff --git a/src/main/scala/services.scala b/src/main/scala/services.scala new file mode 100644 index 00000000..7f2404fb --- /dev/null +++ b/src/main/scala/services.scala @@ -0,0 +1,42 @@ +package org.scalaexercises.evaluator + +import org.http4s._, org.http4s.dsl._, org.http4s.server._ +import org.http4s.server.blaze._ +import org.log4s.getLogger + +import scalaz.concurrent.Task + +object services { + + private val logger = getLogger + + val service = HttpService { + case GET -> Root / "eval" => + Ok(s"Hello, evaluator!.") + } + +} + +object EvaluatorServer extends App { + + import services._ + + private[this] val logger = getLogger + + val ip = Option(System.getenv("EVALUATOR_SERVER_IP")).getOrElse("0.0.0.0") + + val port = (Option(System.getenv("EVALUATOR_SERVER_PORT")) orElse + Option(System.getenv("HTTP_PORT"))) + .map(_.toInt) + .getOrElse(8080) + + logger.info(s"Initializing Evaluator at $ip:$port") + + BlazeBuilder + .bindHttp(port, ip) + .mountService(service) + .start + .run + .awaitShutdown() + +}