2021-01-03 00:39:44 +02:00
|
|
|
module Operations.Query where
|
|
|
|
|
|
|
|
import Data.Query
|
|
|
|
|
|
|
|
import Control.Monad.Buuka
|
|
|
|
import Control.Monad.Reader
|
|
|
|
|
|
|
|
import Data.Foldable
|
|
|
|
(traverse_)
|
|
|
|
|
|
|
|
import Data.Buuka
|
|
|
|
(Buuka)
|
|
|
|
import qualified Data.Buuka as B
|
|
|
|
|
|
|
|
import Operations.Format
|
|
|
|
|
2021-01-03 08:33:44 +02:00
|
|
|
import Data.Text
|
|
|
|
(Text)
|
|
|
|
import qualified Data.Text.IO as T
|
|
|
|
|
|
|
|
query :: Field Text -> Text -> BuukaM ()
|
2021-01-03 00:39:44 +02:00
|
|
|
query field q =
|
2021-01-03 08:33:44 +02:00
|
|
|
buukaQ (asks go) >>= traverse_ (liftIO . T.putStrLn)
|
2021-01-03 00:39:44 +02:00
|
|
|
where
|
2021-01-03 08:33:44 +02:00
|
|
|
go :: Buuka -> [Text]
|
2021-01-03 00:39:44 +02:00
|
|
|
go b = formatEntries b (filter (predicate (regex field q)) . B.elements $ b)
|
|
|
|
|