37 lines
1.2 KiB
Text
37 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.
|
||
|
"""]]
|