sarsi 0.0.0.4 → 0.0.1.0
raw patch · 5 files changed
+27/−20 lines, 5 filesdep +Cabaldep ~sarsiPVP ok
version bump matches the API change (PVP)
Dependencies added: Cabal
Dependency ranges changed: sarsi
API changes (from Hackage documentation)
Files
- sarsi-hs/Main.hs +6/−5
- sarsi-sbt/Main.hs +6/−6
- sarsi.cabal +7/−5
- sarsi/Main.hs +6/−2
- src/Codec/Sarsi/SBT.hs +2/−2
sarsi-hs/Main.hs view
@@ -14,7 +14,7 @@ import System.IO.Machine (byLine, printer) import System.Process (CreateProcess, StdStream(..), shell, std_in, std_out, std_err) import System.Process.Machine (callProcessMachines, mStdErr)-import System.Exit (ExitCode)+import System.Exit (ExitCode, exitWith) import qualified Data.List as List import qualified Data.Text as Text@@ -35,13 +35,13 @@ createProc = (shell cmd) { std_in = Inherit, std_err = CreatePipe } appendCR = auto $ (`Text.snoc` '\n') -producer :: String -> ProcessT IO Event Event -> IO ()+producer :: String -> ProcessT IO Event Event -> IO ExitCode producer cmd sink = do (ec, xs) <- callShell cmd pipeline let finish = createFinish xs putStrLn $ concat [title, ": ", show finish] runT_ $ sink <~ source [finish]- return ()+ return ec where pipeline = sink <~ prepended [Start $ Text.pack "haskell"] <~ auto Notify createFinish xs = foldl' f empty xs@@ -53,5 +53,6 @@ main :: IO () main = do- args <- getArgs- produce "." $ producer (concat $ List.intersperse " " args)+ args <- getArgs+ ec <- produce "." $ producer (concat $ List.intersperse " " args)+ exitWith ec
sarsi-sbt/Main.hs view
@@ -5,7 +5,7 @@ import Data.Machine (ProcessT, (<~), asParts, auto, autoM, runT_) import Sarsi.Producer (produce) import System.Environment (getArgs)-import System.Exit (ExitCode)+import System.Exit (ExitCode, exitWith) import System.Process (CreateProcess, StdStream(..), shell, std_in, std_out, std_err) import System.Process.Machine (callProcessMachines, mStdOut) import System.IO (BufferMode(NoBuffering), hSetBuffering, stdin, stdout)@@ -27,15 +27,15 @@ echoText h = autoM $ (\txt -> TextIO.hPutStr h txt >> return txt) createProc = (shell cmd) { std_in = Inherit, std_out = CreatePipe } -producer :: String -> ProcessT IO Event Event -> IO ()+producer :: String -> ProcessT IO Event Event -> IO ExitCode producer cmd sink = do (ec, _) <- callShell cmd sink- putStrLn $ concat [title, ": ", show ec]- return ()+ return ec main :: IO () main = do hSetBuffering stdin NoBuffering hSetBuffering stdout NoBuffering- args <- getArgs- produce "." $ producer $ concat $ List.intersperse " " ("sbt":args)+ args <- getArgs+ ec <- produce "." $ producer $ concat $ List.intersperse " " ("sbt":args)+ exitWith ec
sarsi.cabal view
@@ -1,5 +1,5 @@ name: sarsi-version: 0.0.0.4+version: 0.0.1.0 synopsis: A universal quickfix toolkit and his protocol. description:@@ -53,8 +53,11 @@ executable sarsi main-is: Main.hs+ other-modules:+ Paths_sarsi build-depends: base+ , Cabal , sarsi hs-source-dirs: sarsi ghc-options: -Wall@@ -63,10 +66,9 @@ executable sarsi-hs main-is: Main.hs- other-modules: build-depends: base- , sarsi == 0.0.0.4+ , sarsi == 0.0.1.0 , machines , machines-io , machines-process@@ -88,7 +90,7 @@ -- NVIM.Info build-depends: base- , sarsi == 0.0.0.4+ , sarsi == 0.0.1.0 , machines , binary , bytestring@@ -111,7 +113,7 @@ other-modules: build-depends: base- , sarsi == 0.0.0.4+ , sarsi == 0.0.1.0 , machines , machines-io , machines-process
sarsi/Main.hs view
@@ -1,14 +1,18 @@ module Main where -import Sarsi (mkSockAddr)+import Distribution.Text+import Sarsi (mkSockAddr, title) import Sarsi.Trace (traceHS, traceSBT) import System.IO (stdin) import System.Environment (getArgs) +import Paths_sarsi (version)+ main :: IO () main = getArgs >>= run where run ["--trace-hs"] = traceHS stdin run ["--trace-sbt"] = traceSBT stdin- run [] = do+ run ["--version"] = putStrLn $ concat [title, "-", display version]+ run _ = do sock <- mkSockAddr "." print sock
src/Codec/Sarsi/SBT.hs view
@@ -36,7 +36,7 @@ ts <- manyTill' (lineStart *> (untilLineBreak <* "\n")) (lookAhead $ column) col <- column _ <- end- return $ Message (Location fp (col + 1) ln) lvl $ formatTxts t ts+ return $ Message (Location fp (col) ln) lvl $ formatTxts t ts where takeLineBreak = takeWhile1 $ \w -> w == '\n' || w == '\r' level = choice [string "[error]" *> return Error, string "[warn]" *> return Warning]@@ -44,7 +44,7 @@ sepChar = ':' formatTxts t [] = Vector.singleton t formatTxts t ts = Vector.fromList $ t : init ts- column = lineStart *> ((length <$> many1 space) <* "^\n")+ column = level *> ((length <$> many1 space) <* "^\n") cleanEC :: Parser Text cleanEC = choice [noEC, withEC]