import Data.Functor import Text.JSON import Database.TxtSushi.FlatFile import System.Environment import Utils {- Encoding note: Nothing fancy is done about encoding, on both ends. So it basically works for UTF-8 which does not mess up with the delimitors of both CSV and JSON. -} csv2json :: FilePath -> IO JSValue csv2json = fmap (JSArray . map (JSArray . map (JSString . toJSString)) . parseTable csvFormat) . getContentsFromFileOrStdin main :: IO () main = putStrLn . encode . mayJSArray =<< mapM csv2json . addDefaultInput =<< getArgs where mayJSArray [x] = x mayJSArray xs = JSArray xs