diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-03-06 12:56:39 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-03-06 12:57:24 -0400 |
commit | bc6c152e48af37fa570b2ebf0352b1b1206eaecd (patch) | |
tree | 67d7cc0f39a8010e8aca5acc7ee30ff7d8b6e47f /Messages | |
parent | 9c80035727bddc2af69fb9cab41dbf965fe496ec (diff) |
improve json when showStart' is given only a key
Before, the json contained file:key; change that to key:
If a file and a key are given, inclue both file: and key:
Diffstat (limited to 'Messages')
-rw-r--r-- | Messages/JSON.hs | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/Messages/JSON.hs b/Messages/JSON.hs index be3dbbc58..fa829a76c 100644 --- a/Messages/JSON.hs +++ b/Messages/JSON.hs @@ -17,13 +17,18 @@ module Messages.JSON ( import Text.JSON import qualified Utility.JSONStream as Stream - -start :: String -> Maybe String -> IO () -start command file = - putStr $ Stream.start $ ("command", command) : filepart file +import Types.Key +import Data.Maybe + +start :: String -> Maybe FilePath -> Maybe Key -> IO () +start command file key = putStr $ Stream.start $ catMaybes + [ part "command" (Just command) + , part "file" file + , part "key" (fmap key2file key) + ] where - filepart Nothing = [] - filepart (Just f) = [("file", f)] + part _ Nothing = Nothing + part l (Just v) = Just (l, v) end :: Bool -> IO () end b = putStr $ Stream.add [("success", b)] ++ Stream.end |