{-# 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 = [docopt|
Usage:
baserock sanitize <system>
|]
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