#! io = io <<< ("Received command: " +++ printToString cmd +++ "\n")
# toSend = case cmd of
["stop":_] = Nothing
- ["ping":_] = Just [msg "pong"]
- ["help":_] = Just [msg "not implemented yet"]
+ ["ping":xs] = Just [msg $ "pong " +++ join " " xs]
+ ["help"] = Just
+ [msg "type !help cmd for command specific help"
+ ,msg "available commands: help, ping"]
+ ["help":c:_] = case c of
+ "help" = Just [msg "help [CMD] - I will print general help or the help of CMD"]
+ "ping" = Just [msg "ping [TXT] - I will reply with pong and the optionar TXT"]
+ _ = Just [msg "Unknown command"]
[c:_] = Just [msg $ join " " ["unknown command: " , c, ", type !help to get help"]]
| isNothing toSend = (io, chan, w)
# (chan, w) = send (map toString $ fromJust toSend) chan w
= process io chan w
| indexOf "PING :" resp > 0
# cmd = rtrim $ subString (indexOf "PING :" resp + size "PING :") (size resp) resp
+ #! io <<< (toString $ PONG cmd Nothing) <<< "\n"
# (chan, w) = send [toString $ PONG cmd Nothing] chan w
= process io chan w
= process io chan w