aboutsummaryrefslogtreecommitdiff
path: root/server/src/Main.scala
diff options
context:
space:
mode:
authorJakob Odersky <jakob@inpher.io>2019-10-11 20:38:55 -0400
committerJakob Odersky <jakob@inpher.io>2019-10-11 20:38:55 -0400
commit3de6739b8b6f04956c8908bc9717990807254a6b (patch)
treede5a1d8dad9664474b4109ada0cbad21c67e9dec /server/src/Main.scala
parent093821b48eff6076cc4123e8db5fcc6eb74f84d3 (diff)
downloadscala-triad-3de6739b8b6f04956c8908bc9717990807254a6b.tar.gz
scala-triad-3de6739b8b6f04956c8908bc9717990807254a6b.tar.bz2
scala-triad-3de6739b8b6f04956c8908bc9717990807254a6b.zip
add logging and some commentsHEADmaster
Diffstat (limited to 'server/src/Main.scala')
-rw-r--r--server/src/Main.scala37
1 files changed, 29 insertions, 8 deletions
diff --git a/server/src/Main.scala b/server/src/Main.scala
index 51e4f28..91649a2 100644
--- a/server/src/Main.scala
+++ b/server/src/Main.scala
@@ -11,18 +11,39 @@ import scala.concurrent.duration._
object Main extends App {
+ def log(message: String) = System.err.println(message)
+
+ log("Initializing contexts...")
implicit val system = ActorSystem("triad")
implicit val materializer = ActorMaterializer()
-
- val repository = {
- Files.deleteIfExists(Paths.get("database.sqlite"))
- Repository.sqlite("database.sqlite")
+ system.registerOnTermination {
+ log("Bye!")
}
- val liveMessages = new LiveMessages
- val routes = new Routes(repository, liveMessages)
- Await.result(repository.database.run(repository.initAction), 10.seconds)
+ try {
+ log("Initializing database...")
+ val repository = {
+ Files.deleteIfExists(Paths.get("database.sqlite"))
+ Repository.sqlite("database.sqlite")
+ }
+
+ log("Preparing live message relay...")
+ val liveMessages = new LiveMessages
+
+ log("Setting up routes...")
+ val routes = new Routes(repository, liveMessages)
- Await.result(Http().bindAndHandle(routes.all, "0.0.0.0", 9090), 10.seconds)
+ log("Populating database tables...")
+ Await.result(repository.database.run(repository.initAction), 10.seconds)
+
+ log("Binding to network...")
+ Await.result(Http().bindAndHandle(routes.all, "0.0.0.0", 9090), 10.seconds)
+
+ log("Ready")
+ } catch {
+ case ex: Exception =>
+ log("Error in initialization. Shutting down...")
+ system.terminate()
+ }
}