summaryrefslogtreecommitdiff
path: root/src/Config.hs
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2026-05-27 20:40:06 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2026-05-31 13:48:13 +0200
commita7c646b2d61b1e23eb44b608b843f2673acaa5bd (patch)
tree8a5294947a1eb78b29ca03d48ba62fec07c2ecad /src/Config.hs
parentbbf1fd0846fa51f74ef01399ab005d4d847becce (diff)
Options to select and exclude tests in config file
Diffstat (limited to 'src/Config.hs')
-rw-r--r--src/Config.hs11
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 {..}