From 914d428ff1a1529b98206f9f3575c88ade7ea38b Mon Sep 17 00:00:00 2001 From: Daniel Gröber Date: Fri, 26 Oct 2018 04:21:38 +0200 Subject: Split up Compile.hs into multiple modules --- src/CabalHelper/Compiletime/Log.hs | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/CabalHelper/Compiletime/Log.hs (limited to 'src/CabalHelper/Compiletime/Log.hs') diff --git a/src/CabalHelper/Compiletime/Log.hs b/src/CabalHelper/Compiletime/Log.hs new file mode 100644 index 0000000..eefb30e --- /dev/null +++ b/src/CabalHelper/Compiletime/Log.hs @@ -0,0 +1,40 @@ +-- cabal-helper: Simple interface to Cabal's configuration state +-- Copyright (C) 2018 Daniel Gröber +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . + +{-| +Module : CabalHelper.Compiletime.Log +Description : Logging utilities +License : GPL-3 +-} + +module CabalHelper.Compiletime.Log where + +import Control.Monad.IO.Class +import System.IO +import System.IO.Error + +import CabalHelper.Compiletime.Types + +logIOError :: Verbose => String -> IO (Maybe a) -> IO (Maybe a) +logIOError label a = do + a `catchIOError` \ex -> do + vLog $ label ++ ": " ++ show ex + return Nothing + +vLog :: (MonadIO m, Verbose) => String -> m () +vLog msg + | ?verbose = liftIO $ hPutStrLn stderr msg + | otherwise = return () -- cgit v1.2.3