From 29e84fb4a5fc81ebadfc4266b0b753eef44fa558 Mon Sep 17 00:00:00 2001 From: pb Date: Sun, 14 Mar 2010 15:32:50 +0000 Subject: git-svn-id: https://ssl.buetow.org/repos/hsbot/trunk@31 9f8f72e9-4bf4-416e-b76e-7d4203597157 --- Main.hs | 57 +++++++++++++++++++++++++-------------------------------- 1 file changed, 25 insertions(+), 32 deletions(-) (limited to 'Main.hs') diff --git a/Main.hs b/Main.hs index f550665..b3c6f7c 100644 --- a/Main.hs +++ b/Main.hs @@ -23,36 +23,29 @@ r = main dispatch :: Dispatch dispatch cmd sendMessage env@(Env state conf _) = - let (Cmd _ _ dispatchFunction) = getCmd ("!" ++ cmd) - in dispatchFunction state - where - getCmd x = - let command = [ (Cmd a b c) | (Cmd a b c) <- commands, a == x ] - in if length command == 0 - then getCmd "!i" - else head command - - commands = [ - Cmd "!h" "Prints help" printHelp, - Cmd "!i" "Prints infos" printInfos, - Cmd "!p" "Prints current state" printState, - Cmd "!s" "Stores current state to file" storeState, - Cmd "!q" "quits" quit - ] - - printHelp _ = printHelp' commands - where printHelp' = sendMessage . concat . showL - printInfos _ = do - sendMessage $ (envGet "name" env) - ++ " " ++ (envGet "version" env) - ++ " (try !h)" - printState = sendMessage . show - storeState state = do - sendMessage "Storing current state" - stateSave (envGet "databaseFile" env) state - quit state = do - sendMessage "Good bye" - stateSave (envGet "databaseFile" env) state - exitWith ExitSuccess - + let commands = [ + Cmd "!h" "Prints help" printHelp, + Cmd "!i" "Prints infos" printInfos, + Cmd "!p" "Prints current state" printState, + Cmd "!s" "Stores current state to file" storeState, + Cmd "!q" "quits" quit + ] + printHelp _ = printHelp' commands + where printHelp' = sendMessage . concat . showL + printInfos _ = do + sendMessage $ (envGet "name" env) + ++ " " ++ (envGet "version" env) + ++ " (try !h)" + printState = sendMessage . show + storeState state = do + sendMessage "Storing current state" + stateSave (envGet "databaseFile" env) state + quit state = do + sendMessage "Good bye" + stateSave (envGet "databaseFile" env) state + exitWith ExitSuccess + + in case cmdGet ("!" ++ cmd) commands of + Just (Cmd _ _ dispatchFunction) -> dispatchFunction state + Nothing -> dispatch "i" sendMessage env -- cgit v1.2.3