aip-0.0.1: src/Main.hs
{-# LANGUAGE NoImplicitPrelude #-}
module Main(
main
) where
import Control.Monad.IO.Class(MonadIO(liftIO))
import Data.Aviation.Aip.AipDocuments(writeAipDocuments)
import Control.Monad.Trans.Except(runExceptT)
import System.Directory(createDirectoryIfMissing)
import System.Environment(getArgs)
import System.FilePath((</>))
import System.IO(IO, Handle, IOMode(AppendMode), withFile, hPutStrLn, stderr)
import Papa
main ::
IO ()
main =
do a <- getArgs
case a of
adir:ldir:_ ->
let wlogfile ::
MonadIO m =>
FilePath
-> (Handle -> IO a)
-> m a
wlogfile f =
liftIO . withFile (ldir </> f) AppendMode
ex =
do liftIO (mapM_ (createDirectoryIfMissing True) [adir, ldir])
wlogfile "err.log" (\herr ->
wlogfile "out.log" (\hout ->
do p <- runExceptT (writeAipDocuments herr hout adir)
mapM_ (\qs -> appendFile (ldir </> "aip") (qs >>= \q -> q ++ "\n")) p))
in void (runExceptT ex)
_ ->
hPutStrLn stderr "<aip-directory> <log-directory>"