@@ -5,6 +5,7 @@ import Crypto
55import Sqlite
66import Dict
77import FileSystem
8+ import FileSystem.Path as Path
89import HttpClient
910import HttpServer exposing (Request, ServerError(..), Method(..))
1011import HttpServer.Response as Response exposing (Response)
@@ -71,6 +72,11 @@ init env =
7172 , apiToken = token
7273 }
7374 )
75+
76+ maybeDbLocation =
77+ envVars
78+ |> Dict.get "REGISTRY_DB_PATH"
79+ |> Maybe.map (\path -> Sqlite.File (Path.fromPosixString path))
7480 in
7581 Node.startProgram
7682 { model =
@@ -82,23 +88,31 @@ init env =
8288 , postmark = postmark
8389 }
8490 , command =
85- let
86- initDb =
87- Registry.Db.open fsPerm
88- |> Task.andThen
89- (\db ->
90- Registry.Db.migrate db
91- |> Task.map (\_ -> db)
92- )
93- |> Task.attempt DbMigrationResult
94- in
95- Cmd.batch
96- [ initDb
97- , HttpServer.createServer serverPermission serverConfig
98- |> Task.attempt CreateServerResult
99- , Crypto.getSecureContext
100- |> Task.attempt SecureContextResult
101- ]
91+ when maybeDbLocation is
92+ Nothing ->
93+ "REGISTRY_DB_PATH environment variable is not set"
94+ |> print env.stderr
95+ |> Task.map (\_ -> Node.exitWithCode 1)
96+ |> Task.executeCmd
97+
98+ Just dbLocation ->
99+ let
100+ initDb =
101+ Registry.Db.open fsPerm dbLocation
102+ |> Task.andThen
103+ (\db ->
104+ Registry.Db.migrate db
105+ |> Task.map (\_ -> db)
106+ )
107+ |> Task.attempt DbMigrationResult
108+ in
109+ Cmd.batch
110+ [ initDb
111+ , HttpServer.createServer serverPermission serverConfig
112+ |> Task.attempt CreateServerResult
113+ , Crypto.getSecureContext
114+ |> Task.attempt SecureContextResult
115+ ]
102116 }
103117
104118
0 commit comments