44 lines
1.2 KiB
Scala
44 lines
1.2 KiB
Scala
import zio.*
|
|
import zio.http.*
|
|
import zio.config.typesafe.TypesafeConfigProvider
|
|
|
|
import api.Routes
|
|
import _root_.config.{AppConfig as SummerConfig}
|
|
import db.QuillContext
|
|
|
|
object Main extends ZIOAppDefault {
|
|
|
|
private val banner: String =
|
|
"""
|
|
|
|
|
| | .
|
|
| `. * | .'
|
|
| `. ._|_* .' .
|
|
| . * .' `. *
|
|
| -------| |-------
|
|
| . *`.___.' * .
|
|
| .' |* `. *
|
|
| .' * | . `.
|
|
| . |
|
|
|
|
|
| S U M M E R C M S
|
|
|""".stripMargin
|
|
|
|
override val bootstrap: ZLayer[ZIOAppArgs, Any, Any] =
|
|
Runtime.setConfigProvider(TypesafeConfigProvider.fromResourcePath())
|
|
|
|
override def run: ZIO[Any, Any, Any] =
|
|
for {
|
|
cfg <- ZIO.config[SummerConfig](SummerConfig.config)
|
|
_ <- Console.printLine(banner)
|
|
_ <- Console.printLine(s"Starting on port ${cfg.server.port}...")
|
|
_ <- Console.printLine("")
|
|
// Note: Migrations are NOT auto-run. Use CLI to run migrations (Phase 5).
|
|
_ <- Server.serve(Routes.routes).provide(
|
|
Server.defaultWithPort(cfg.server.port),
|
|
QuillContext.dataSourceLayer
|
|
)
|
|
} yield ()
|
|
|
|
}
|