summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xOmni/Bild.hs10
-rw-r--r--Omni/Log/Concurrent.hs14
2 files changed, 16 insertions, 8 deletions
diff --git a/Omni/Bild.hs b/Omni/Bild.hs
index f84b08c..1bb42db 100755
--- a/Omni/Bild.hs
+++ b/Omni/Bild.hs
@@ -964,19 +964,15 @@ build andTest loud jobs cpus analysis = do
result <- case compiler of
CPython -> case out of
Just _ ->
- LogC.updateCurrentLine namespace "bild: nix: python"
- >> nixBuild loud jobs cpus target
+ nixBuild loud jobs cpus target
+> (\r -> (isSuccess (fst r) && andTest) ?: (test loud target, pure r))
Nothing ->
- LogC.updateCurrentLine namespace "cannot build library"
- >> pure (Exit.ExitSuccess, mempty)
+ pure (Exit.ExitSuccess, mempty)
Gcc ->
- LogC.updateCurrentLine namespace "bild: nix: gcc"
- >> nixBuild loud jobs cpus target
+ nixBuild loud jobs cpus target
Ghc -> case out of
Nothing -> pure (Exit.ExitSuccess, mempty)
Just _ -> do
- LogC.updateCurrentLine namespace ("bild: nix: " <> user <> "@" <> host)
result <- nixBuild loud jobs cpus target
if andTest && (isSuccess <| fst result)
then test loud target
diff --git a/Omni/Log/Concurrent.hs b/Omni/Log/Concurrent.hs
index 05426aa..47e9404 100644
--- a/Omni/Log/Concurrent.hs
+++ b/Omni/Log/Concurrent.hs
@@ -119,7 +119,19 @@ reserveLine LineManager {..} ns =
linesMap' = Map.insert lineNum (Just status) linesMap
in (linesMap', Just lineNum)
case mLine of
- Just lineNum -> modifyIORef' namespaceLines (Map.insert ns lineNum)
+ Just lineNum -> do
+ modifyIORef' namespaceLines (Map.insert ns lineNum)
+ currentLine <- readIORef lmCurrentLine
+ ANSI.hSaveCursor IO.stderr
+ ANSI.hSetCursorColumn IO.stderr 0
+ let linesToMove = currentLine - lineNum
+ when (linesToMove > 0) <| ANSI.hCursorUp IO.stderr linesToMove
+ when (linesToMove < 0) <| ANSI.hCursorDown IO.stderr (abs linesToMove)
+ ANSI.hClearLine IO.stderr
+ let nsText = Text.pack (Namespace.toPath ns)
+ IO.hPutStr IO.stderr (Text.unpack <| "[+] " <> nsText)
+ IO.hFlush IO.stderr
+ ANSI.hRestoreCursor IO.stderr
Nothing -> pure ()
pure mLine
where