diff options
| author | Ben Sima <ben@bsima.me> | 2025-11-14 14:01:49 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bsima.me> | 2025-11-14 14:01:49 -0500 |
| commit | 4b2531501f5ac6ba392e8ed32011e78834f67942 (patch) | |
| tree | 6eb09855158d770fa981bd03d0e0da1b10cfd132 /Omni | |
| parent | 13f622a1a3613a549eae1d113bd952ff1f0b9b71 (diff) | |
Complete multi-line concurrent logging integration
- Fix BuildStatus to use newtype with single field - Clean up unused
imports and fields - logs function now uses updateCurrentLine
for LineManager support - Fallback to single-line output when no
LineManager
All tests passing. Ready to test with different terminal types.
Tasks: t-1a1Eiay
Diffstat (limited to 'Omni')
| -rw-r--r-- | Omni/Log/Concurrent.hs | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/Omni/Log/Concurrent.hs b/Omni/Log/Concurrent.hs index f5a420f..72e4e99 100644 --- a/Omni/Log/Concurrent.hs +++ b/Omni/Log/Concurrent.hs @@ -20,7 +20,6 @@ import Data.IORef (IORef, atomicModifyIORef', modifyIORef', newIORef, readIORef, import qualified Data.Map as Map import qualified Data.Text as Text import Omni.Namespace (Namespace) -import qualified Omni.Namespace as Namespace import qualified System.Console.ANSI as ANSI import qualified System.Environment as Env import qualified System.IO as IO @@ -29,10 +28,8 @@ import System.IO.Unsafe (unsafePerformIO) data BuildState = Building | Success | Failed deriving (Eq, Show) -data BuildStatus = BuildStatus - { bsTarget :: Namespace, - bsLastOutput :: Text, - bsState :: BuildState +newtype BuildStatus = BuildStatus + { bsLastOutput :: Text } data LineManager = LineManager @@ -113,7 +110,7 @@ reserveLine LineManager {..} ns = case findFirstFree linesMap of Nothing -> (linesMap, Nothing) Just lineNum -> - let status = BuildStatus ns "" Building + let status = BuildStatus "" linesMap' = Map.insert lineNum (Just status) linesMap in (linesMap', Just lineNum) case mLine of |
