-
-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Description
Using tmp-postgres with Debian is a bit awkward because initdb is not on the default PATH. What do you think about adding a feature that can add the paths at which initdb is typically found to the PATH? I've been using the following, but there are many possibilities.
-- Adds paths to PATH, runs the action and restores the original PATH
-- before returning.
withPath :: [String] -> IO a -> IO a
withPath paths f = bracket
(do
origPath <- System.Environment.lookupEnv "PATH"
let newPath = maybe ps (++ ":" ++ ps) origPath
System.Environment.setEnv "PATH" newPath
pure origPath)
(\origPath -> do
let origPath' = maybe "" id origPath
System.Environment.setEnv "PATH" origPath')
(\_ -> f)
where ps = intercalate ":" paths
-- withConfig, but adds to the PATH some typical locations that initdb
-- might be found (Debian doesn't put initdb on the PATH).
withConfigPath :: T.Config -> (T.DB -> IO a) -> IO (Either T.StartError a)
withConfigPath config f = withPath [ "/usr/lib/postgresql/11/bin"
, "/usr/lib/postgresql/10/bin" ]
(T.withConfig config f)Metadata
Metadata
Assignees
Labels
No labels