@@ -21,16 +21,16 @@ module Main (
21
21
import Control.Applicative
22
22
#endif
23
23
import Control.Exception
24
- import Control.Monad (void )
25
24
import qualified Data.ByteString.Char8 as BS8 (pack )
26
25
import Database.PostgreSQL.Simple (SqlError (.. ),
27
26
connectPostgreSQL ,
28
27
withTransaction )
29
28
import Database.PostgreSQL.Simple.Migration (MigrationCommand (.. ),
30
29
MigrationContext (.. ),
30
+ MigrationResult (.. ),
31
31
runMigration )
32
32
import System.Environment (getArgs )
33
- import System.Exit (exitFailure )
33
+ import System.Exit (exitFailure , exitSuccess )
34
34
35
35
import qualified Data.Text as T
36
36
import qualified Data.Text.Encoding as T
@@ -68,7 +68,7 @@ ppException a = catch a ehandler
68
68
run :: Maybe Command -> Bool -> IO ()
69
69
run Nothing _ = printUsage >> exitFailure
70
70
run (Just cmd) verbose =
71
- void $ case cmd of
71
+ handleResult =<< case cmd of
72
72
Initialize url -> do
73
73
con <- connectPostgreSQL (BS8. pack url)
74
74
withTransaction con $ runMigration $ MigrationContext
@@ -81,6 +81,9 @@ run (Just cmd) verbose =
81
81
con <- connectPostgreSQL (BS8. pack url)
82
82
withTransaction con $ runMigration $ MigrationContext
83
83
(MigrationValidation (MigrationDirectory dir)) verbose con
84
+ where
85
+ handleResult MigrationSuccess = exitSuccess
86
+ handleResult (MigrationError _) = exitFailure
84
87
85
88
parseCommand :: [String ] -> Maybe Command
86
89
parseCommand (" init" : url: _) = Just (Initialize url)
0 commit comments