aboutsummaryrefslogtreecommitdiff
path: root/Messages.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2010-11-08 15:15:21 -0400
committerGravatar Joey Hess <joey@kitenet.net>2010-11-08 15:15:21 -0400
commit070e8530c1151dc96dec099eac8b967277751b10 (patch)
tree8605013ee71aeafdb2bb89612cf3e2044882ab6d /Messages.hs
parent02a21d7f274568a2e2f94498607955aab8713a24 (diff)
refactoring, no code changes really
Diffstat (limited to 'Messages.hs')
-rw-r--r--Messages.hs54
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