Also return valideness via return value
authorJoachim Breitner <mail@joachim-breitner.de>
Fri, 26 Jun 2009 08:51:31 +0000 (10:51 +0200)
committerJoachim Breitner <mail@joachim-breitner.de>
Fri, 26 Jun 2009 08:51:31 +0000 (10:51 +0200)
src/validate.hs

index bd595f4..8200523 100644 (file)
@@ -11,6 +11,7 @@ import Text.Parsec.Error
 import Text.Parsec.Pos
 import Lseed.Grammar.Parse
 import Text.JSON
+import System.Exit
 
 valid = encode $ makeObj [ ("valid", showJSON True) ]
 
@@ -24,4 +25,12 @@ invalid error = encode $ makeObj
                     errorMessages $ error)
        ]
 
-main = interact $ either invalid (const valid) . parseGrammar "stdin"
+main = do
+       file <- getContents
+       case (parseGrammar "stdin" file) of
+               Left err -> do
+                       putStrLn (invalid err)
+                       exitWith (ExitFailure 1)
+               Right _ -> do
+                       putStrLn valid
+                       exitWith ExitSuccess