packages feed

baserock-schema-0.0.1.2: app/Main.hs

{-# 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