summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG1
-rw-r--r--Messages/JSON.hs11
2 files changed, 8 insertions, 4 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 2e42fb34f..61831dfd3 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -6,6 +6,7 @@ git-annex (6.20160908) UNRELEASED; urgency=medium
over ssh etc.
* Make --json and --quiet work when used with -J.
Previously, -J override the other options.
+ * Remove key:null from git-annex add --json output.
-- Joey Hess <id@joeyh.name> Thu, 08 Sep 2016 12:48:55 -0400
diff --git a/Messages/JSON.hs b/Messages/JSON.hs
index 9f8f31c46..0cceda3f3 100644
--- a/Messages/JSON.hs
+++ b/Messages/JSON.hs
@@ -24,6 +24,7 @@ import qualified Data.Map as M
import qualified Data.Text as T
import qualified Data.ByteString.Lazy as B
import System.IO
+import Data.Maybe
import Data.Monoid
import Prelude
@@ -84,10 +85,12 @@ data JSONActionItem a = JSONActionItem
deriving (Show)
instance ToJSON (JSONActionItem a) where
- toJSON i = object
- [ "command" .= itemCommand i
- , "key" .= (toJSON (itemKey i))
- , "file" .= itemFile i
+ toJSON i = object $ catMaybes
+ [ Just $ "command" .= itemCommand i
+ , case itemKey i of
+ Nothing -> Nothing
+ Just k -> Just $ "key" .= toJSON k
+ , Just $ "file" .= itemFile i
-- itemAdded is not included; must be added later by 'add'
]