module RunApp.Main (run) where
import Data.Aeson.Encode.Pretty
import Data.Either
import Data.GS1.Event (allEventTypes)
import Data.GS1.Parser.Parser (parseEventByType)
import qualified Data.Text.Lazy.Encoding as TLE
import qualified Data.Text.Lazy.IO as TL
import System.Environment
import Text.XML
import Text.XML.Cursor
run :: IO ()
run = do
args <- getArgs
doc <- Text.XML.readFile def (head args)
let mainCursor = fromDocument doc
allParsedEvents =
filter (not . null) $ concat $
parseEventByType mainCursor <$> allEventTypes
mapM_ (TL.putStrLn . TLE.decodeUtf8 . encodePretty) (rights allParsedEvents)