Ignore comments in output for grocery export

TL;DR:
- Ignore lines starting with "#"
- Tidy up the code
This commit is contained in:
William Carroll 2020-10-03 11:00:11 +01:00
parent 3b525e6d63
commit 0f160a8029

View file

@ -1,11 +1,22 @@
module Main where
import Data.Function ((&))
import qualified Data.List as L
(|>) :: a -> (a -> b) -> b
x |> f = f x
-- | Ignore items with zero quantity (i.e. "0x") and comments (i.e. "#")
isUndesirableOutput :: String -> Bool
isUndesirableOutput x =
(L.isPrefixOf "- 0x" x) || (L.isPrefixOf "#" x)
-- | Run this to export the grocery list.
main :: IO ()
main = do
x <- readFile "./list.org"
x & lines & filter (not . L.isPrefixOf "- 0x") & unlines & putStrLn
content <- readFile "./list.org"
content
|> lines
|> filter (not . isUndesirableOutput)
|> unlines
|> putStrLn
pure ()