packages feed

language-conf-0.2.1.0: bin/ConfFmt.hs

import qualified Data.Conf             as Conf
import qualified Data.Conf.PrettyPrint as Conf
import qualified Data.Text.IO          as Text (readFile)
import           System.Environment    (getArgs)
import           System.Exit           (exitFailure)
import           System.IO
import qualified Text.Megaparsec       as Megaparsec

main :: IO ()
main = do
    as <- getArgs
    case as of
        (filePath:_) -> do
            contents <- Text.readFile filePath
            case Megaparsec.parse Conf.conf filePath contents of
                Left err -> hPrint stderr err
                Right ast -> print (Conf.pPrint ast)
        _ -> do
            hPutStrLn stderr "Usage: conffmt <conf-file>"
            exitFailure