From f373e73ada78951f99118129bfcf9793e461e296 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 20 Apr 2014 11:38:50 -0400 Subject: [PATCH] propellor spin --- Propellor/SimpleSh.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Propellor/SimpleSh.hs b/Propellor/SimpleSh.hs index 7e0f19f..c088eda 100644 --- a/Propellor/SimpleSh.hs +++ b/Propellor/SimpleSh.hs @@ -32,7 +32,6 @@ simpleSh namedpipe = do forever $ do (client, _addr) <- accept s h <- socketToHandle client ReadWriteMode - hSetBuffering h LineBuffering maybe noop (run h) . readish =<< hGetLine h where run h (Cmd cmd params) = do @@ -47,6 +46,7 @@ simpleSh namedpipe = do let runwriter = do v <- readChan chan hPutStrLn h (show v) + hFlush h case v of Done -> noop _ -> runwriter @@ -73,8 +73,8 @@ simpleShClient namedpipe cmd params handler = do s <- socket AF_UNIX Stream defaultProtocol connect s (SockAddrUnix namedpipe) h <- socketToHandle s ReadWriteMode - hSetBuffering h LineBuffering hPutStrLn h $ show $ Cmd cmd params + hFlush h resps <- catMaybes . map readish . lines <$> hGetContents h hClose h `after` handler resps