{-# LANGUAGE QuasiQuotes #-} import Baserock.Schema.V9 import Control.Exception import Control.Monad (when) import Control.Monad.Except import Data.Char (toUpper) import System.Environment (getArgs) import System.Console.Docopt patterns :: Docopt patterns = [docoptFile|USAGE.txt|] getArgOrExit = getArgOrExitWith patterns main = do args <- parseArgsOrExit patterns =<< getArgs when (args `isPresent` command "sanitize") $ do f <- args `getArgOrExit` (argument "system") s <- decodeSystemAST f case s of Right r -> encodeSystemAST f r Left e -> throwIO e