diff options
author | Joey Hess <joeyh@joeyh.name> | 2017-04-22 15:14:03 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2017-04-22 15:16:10 -0400 |
commit | 3adfdf1ae27cd4b6419ce5be14ffb3712339065a (patch) | |
tree | 9ce265ece85d2e3829eba85d964f2a123699f908 /Role/Developer.hs | |
parent | 7987157bfd99b8e2ec78f5030a49c2e16bf08321 (diff) | |
download | debug-me-3adfdf1ae27cd4b6419ce5be14ffb3712339065a.tar.gz |
add framing protocol for websockets
Diffstat (limited to 'Role/Developer.hs')
-rw-r--r-- | Role/Developer.hs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/Role/Developer.hs b/Role/Developer.hs index 89f6ea9..4248591 100644 --- a/Role/Developer.hs +++ b/Role/Developer.hs @@ -19,14 +19,23 @@ import qualified Data.Text as T import Data.List run :: DeveloperOpts -> IO () -run os = runClientApp $ clientApp (ConnectMode (T.pack (debugUrl os))) developer +run = run' developer . debugUrl + +run' :: (TChan (Message Entered) -> TChan (Message Seen) -> SessionID -> IO ()) -> UrlString -> IO () +run' runner url = runClientApp $ clientApp connect Developer userMessages runner + where + connect = ConnectMode (T.pack url) + +userMessages :: LogMessage -> Maybe (Message Seen) +userMessages (User m) = Just m +userMessages (Developer _) = Nothing developer :: TChan (Message Entered) -> TChan (Message Seen) -> SessionID -> IO () -developer ichan ochan _ = inRawMode $ withLogger "debug-me-developer.log" $ \logger -> do +developer ichan ochan _ = withLogger "debug-me-developer.log" $ \logger -> do devstate <- processSessionStart ochan logger ok <- authUser ichan ochan devstate logger if ok - then do + then inRawMode $ do _ <- sendTtyInput ichan devstate logger `concurrently` sendTtyOutput ochan devstate logger return () |