36 lines
1.2 KiB
Text
36 lines
1.2 KiB
Text
[[!comment format=mdwn
|
|
username="joey"
|
|
subject="""comment 4"""
|
|
date="2016-07-25T17:39:37Z"
|
|
content="""
|
|
--batch mode should be usable to get current metadata, set new
|
|
metadata, and remove existing metadata. The non-batch metadata command has
|
|
different syntaxes for all of these, but it would be good to have a single
|
|
interface that handles all three in batch mode.
|
|
|
|
It could read a line containing the file or key, with any metadata
|
|
fields that should be changed:
|
|
|
|
{"file":"foo"}
|
|
{"file":"foo","author":["bar"]}
|
|
{"key":"SHA...","author":[]}
|
|
|
|
And reply with *all* the metadata, in nearly the same format:
|
|
|
|
{"file":"foo","key":"SHA...","author":["bar"],lastchanged:["date"],"success":true}
|
|
|
|
And that reply could in turn be edited and fed back in to change the
|
|
metadata.
|
|
|
|
----
|
|
|
|
There's a DRY problem here because there's the current JSON generator code,
|
|
and I'd have to add an Aeson parser to parse the JSON input. But, Aeson
|
|
parsers also automatically have a matching generator, which is guaranteed
|
|
to generate code that the parser can parse.
|
|
|
|
So, it would be nice to use the Aeson JSON generator, instead of the
|
|
current one, but that can only be done if the JSON is formatted the same,
|
|
or close enough that nothing currently consuming `metadata --json` will
|
|
break.
|
|
"""]]
|