packages feed

fluent-lint-1.0.0: app/Main.hs

module Main where

import Config (Config (..))
import Config qualified
import Data.Containers.ListUtils (nubOrd)
import Data.Foldable (for_, toList)
import Document qualified
import Effectful
import Effectful.Hspec (describe, runHspec)
import Lint qualified
import System.Environment (withArgs)
import Prelude

main :: IO ()
main = do
    Config{..} <- Config.get
    withArgs [] . runEff . runHspec $ do
        documents <- mapM Document.read . nubOrd . filter (`notElem` reference) . toList $ files
        reference <- mapM Document.read reference
        for_ (toList reference <> documents) \document ->
            describe document.path $
                (if lenient then Lint.lenient else Lint.strict) reference document