diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2026-05-27 20:40:06 +0200 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2026-05-31 13:48:13 +0200 |
| commit | a7c646b2d61b1e23eb44b608b843f2673acaa5bd (patch) | |
| tree | 8a5294947a1eb78b29ca03d48ba62fec07c2ecad /src/Config.hs | |
| parent | bbf1fd0846fa51f74ef01399ab005d4d847becce (diff) | |
Options to select and exclude tests in config file
Diffstat (limited to 'src/Config.hs')
| -rw-r--r-- | src/Config.hs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/Config.hs b/src/Config.hs index adf0321..af2161a 100644 --- a/src/Config.hs +++ b/src/Config.hs @@ -9,6 +9,7 @@ import Control.Monad.Combinators import Data.ByteString.Lazy qualified as BS import Data.Scientific +import Data.Text (Text) import Data.Text qualified as T import Data.YAML @@ -21,6 +22,8 @@ data Config = Config { configDir :: FilePath , configTool :: Maybe FilePath , configTests :: [ Pattern ] + , configSelect :: Maybe [ Text ] + , configExclude :: [ Text ] , configTimeout :: Maybe Scientific } deriving (Show) @@ -33,6 +36,14 @@ instance FromYAML (FilePath -> Config) where , m .:? "tests" .!= [] -- list of patterns ] ) + configSelect <- foldr1 (<|>) + [ fmap (Just . (: [])) (m .: "select") -- single item + , m .:? "select" -- list of items + ] + configExclude <- foldr1 (<|>) + [ fmap (: []) (m .: "exclude") -- single item + , m .:? "exclude" .!= [] -- list of items + ] configTimeout <- fmap fromNumber <$> m .:! "timeout" return $ \configDir -> Config {..} |