Improve display of newlines around error and warning messages.

This commit is contained in:
Joey Hess 2011-09-06 13:46:08 -04:00
parent 14f75ced75
commit 07125dca53
5 changed files with 23 additions and 7 deletions

View file

@ -89,8 +89,8 @@ tryRun' errnum state (a:as) = do
case result of case result of
Left err -> do Left err -> do
Annex.eval state $ do Annex.eval state $ do
showEndFail
showErr err showErr err
showEndFail
tryRun' (errnum + 1) state as tryRun' (errnum + 1) state as
Right (True,state') -> tryRun' errnum state' as Right (True,state') -> tryRun' errnum state' as
Right (False,state') -> tryRun' (errnum + 1) state' as Right (False,state') -> tryRun' (errnum + 1) state' as

View file

@ -103,7 +103,6 @@ doCommand = start
stage a b = b >>= a stage a b = b >>= a
success = return True success = return True
failure = do failure = do
showOutput -- avoid clutter around error message
showEndFail showEndFail
return False return False

View file

@ -73,16 +73,17 @@ showEndResult b = handle (JSON.end b) $ putStrLn msg
| otherwise = "failed" | otherwise = "failed"
showErr :: (Show a) => a -> Annex () showErr :: (Show a) => a -> Annex ()
showErr e = liftIO $ do showErr e = warning' $ "git-annex: " ++ show e
hFlush stdout
hPutStrLn stderr $ "git-annex: " ++ show e
warning :: String -> Annex () warning :: String -> Annex ()
warning w = do warning w = warning' (indent w)
warning' :: String -> Annex ()
warning' w = do
handle q $ putStr "\n" handle q $ putStr "\n"
liftIO $ do liftIO $ do
hFlush stdout hFlush stdout
hPutStrLn stderr $ indent w hPutStrLn stderr w
indent :: String -> String indent :: String -> String
indent s = join "\n" $ map (\l -> " " ++ l) $ lines s indent s = join "\n" $ map (\l -> " " ++ l) $ lines s

6
debian/changelog vendored
View file

@ -1,3 +1,9 @@
git-annex (3.20110903) UNRELEASED; urgency=low
* Improve display of newlines around error and warning messages.
-- Joey Hess <joeyh@debian.org> Tue, 06 Sep 2011 13:45:16 -0400
git-annex (3.20110902) unstable; urgency=low git-annex (3.20110902) unstable; urgency=low
* Set EMAIL when running test suite so that git does not need to be * Set EMAIL when running test suite so that git does not need to be

View file

@ -34,3 +34,13 @@ The newline is in the wrong place and confuses the user. It should be printed _a
> failed > failed
> >
> --[[Joey]] > --[[Joey]]
>> Well, I fixed this in all cases except a thrown non-IO error (last
>> example aboce), which output is printed by haskell's runtime. I'd
>> have to add a second error handler to handle those, and it's not
>> clear what it would do. Often an error will occur before anything
>> else is printed, and then the current behavior is right; if something
>> has been printed it would be nice to have a newline before the error,
>> but by the time the error is caught we'd be out of the annex monad
>> and not really have any way to know if something has been printed.
>> I think my fix is good enough [[done]] --[[Joey]]