diff options
author | Joey Hess <joey@kitenet.net> | 2010-11-08 15:15:21 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-11-08 15:15:21 -0400 |
commit | 070e8530c1151dc96dec099eac8b967277751b10 (patch) | |
tree | 8605013ee71aeafdb2bb89612cf3e2044882ab6d /Messages.hs | |
parent | 02a21d7f274568a2e2f94498607955aab8713a24 (diff) |
refactoring, no code changes really
Diffstat (limited to 'Messages.hs')
-rw-r--r-- | Messages.hs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Messages.hs b/Messages.hs new file mode 100644 index 000000000..89f78e244 --- /dev/null +++ b/Messages.hs @@ -0,0 +1,54 @@ +{- git-annex output messages + - + - Copyright 2010 Joey Hess <joey@kitenet.net> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Messages where + +import Control.Monad.State (liftIO) +import System.IO +import Control.Monad (unless) +import Data.String.Utils + +import Types +import qualified Annex + +verbose :: Annex () -> Annex () +verbose a = do + q <- Annex.flagIsSet "quiet" + unless q a + +showStart :: String -> String -> Annex () +showStart command file = verbose $ do + liftIO $ putStr $ command ++ " " ++ file ++ " " + liftIO $ hFlush stdout + +showNote :: String -> Annex () +showNote s = verbose $ do + liftIO $ putStr $ "(" ++ s ++ ") " + liftIO $ hFlush stdout + +showProgress :: Annex () +showProgress = verbose $ liftIO $ putStr "\n" + +showLongNote :: String -> Annex () +showLongNote s = verbose $ do + liftIO $ putStr $ "\n" ++ indented + where + indented = join "\n" $ map (\l -> " " ++ l) $ lines s +showEndOk :: Annex () +showEndOk = verbose $ do + liftIO $ putStrLn "ok" + +showEndFail :: Annex () +showEndFail = verbose $ do + liftIO $ putStrLn "\nfailed" + +{- Exception pretty-printing. -} +showErr :: (Show a) => a -> Annex () +showErr e = warning $ show e + +warning :: String -> Annex () +warning s = liftIO $ hPutStrLn stderr $ "git-annex: " ++ s |