diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/GenJS.hs | 14 | ||||
-rw-r--r-- | app/Main.hs | 35 |
2 files changed, 23 insertions, 26 deletions
diff --git a/app/GenJS.hs b/app/GenJS.hs index a580d23..1e7ba3a 100644 --- a/app/GenJS.hs +++ b/app/GenJS.hs @@ -4,12 +4,12 @@ -- bother with it module Main where -import Universum -import Servant.JS -import Servant.JS.Vanilla -import System.Environment (getArgs) +import Servant.JS +import Servant.JS.Vanilla +import System.Environment (getArgs) +import Universum -import API +import API apiJS :: Text -> Text apiJS url = jsForAPI (Proxy @API) (vanillaJSWith options) @@ -19,6 +19,6 @@ main :: IO () main = do args <- getArgs case args of - [] -> putText (apiJS "") + [] -> putText (apiJS "") [prefix] -> putText (apiJS (toText prefix)) - _ -> error "don't understand these options" + _ -> error "don't understand these options" diff --git a/app/Main.hs b/app/Main.hs index a61140a..3856a67 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -1,15 +1,15 @@ +{-# LANGUAGE OverloadedLists #-} +{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RecordWildCards #-} -- | The main module. Does little more than handle some basic ocnfic, then -- call the server module Main where -import Conferer (fetch) -import Conferer.Config (addSource, emptyConfig) -import qualified Conferer.Source.Aeson as ConfAeson -import qualified Conferer.Source.CLIArgs as ConfCLI -import qualified Conferer.Source.Env as ConfEnv -import qualified Conferer.Source.Yaml as ConfYaml +import Conftrack +import Conftrack.Pretty +import Conftrack.Source.Env (mkEnvSource) +import Conftrack.Source.Yaml (mkYamlFileSource) import Control.Monad.Extra (ifM) import Control.Monad.IO.Class (MonadIO (liftIO)) import Control.Monad.Logger (runStderrLoggingT) @@ -20,6 +20,7 @@ import Network.Wai.Middleware.RequestLogger (OutputFormat (..), RequestLoggerSettings (..), mkRequestLogger) import System.Directory (doesFileExist) +import System.OsPath (osp) import Config (ServerConfig (..)) import GTFS (loadGtfs) @@ -27,19 +28,15 @@ import Server (application) main :: IO () main = do - confconfig <- pure emptyConfig - >>= addSource ConfCLI.fromConfig - >>= addSource (ConfEnv.fromConfig "tracktrain") - -- for some reason the yaml source fails if the file does not exist, but json works fine - >>= (\c -> ifM (doesFileExist "./config.yaml") - (addSource (ConfYaml.fromFilePath "./config.yaml") c) - (pure c)) - >>= (\c -> ifM (doesFileExist "./config.yml") - (addSource (ConfYaml.fromFilePath "./config.yml") c) - (pure c)) - >>= addSource (ConfAeson.fromFilePath "./config.json") - - settings@ServerConfig{..} <- fetch confconfig + + Right ymlsource <- mkYamlFileSource [osp|./config.yaml|] + + Right (settings@ServerConfig{..}, origins, warnings) <- + runFetchConfig [mkEnvSource "tracktrain", ymlsource] + + putStrLn "reading configs .." + printConfigOrigins origins + printConfigWarnings warnings gtfs <- loadGtfs serverConfigGtfs serverConfigZoneinfoPath loggerMiddleware <- mkRequestLogger |