packages feed

devtools-0.1.0: src/Devtools.hs

module Devtools
  ( Config(..)
  , Target(..)
  , defaultConfig
  , defaultMain
  , main
  , testTree
  )
where

import Devtools.Config
import Devtools.Prelude
import System.IO (putStrLn)

import qualified Devtools.Dependencies as Dependencies
import qualified Devtools.HLint        as HLint
import qualified Test.Tasty            as Tasty

defaultConfig :: Config
defaultConfig = Config
  { hlintArguments = []
  , targets        = []
  }

defaultMain :: IO ()
defaultMain = main defaultConfig

main :: Config -> IO ()
main config = do
  putStrLn empty
  Tasty.defaultMain =<< testTree config

testTree :: Config -> IO Tasty.TestTree
testTree Config{..} = do
  filename <- Dependencies.getFilename

  pure $ Tasty.testGroup
    "devtools"
    [ Dependencies.testTree filename targets
    , HLint.testTree hlintArguments
    ]