From 7616dcb7939da1c2db260cdc7ff4b3746bee7300 Mon Sep 17 00:00:00 2001 From: Lorenz Leutgeb Date: Mon, 2 Dec 2024 22:32:33 +0100 Subject: [PATCH] cli/cob: Output JSON Lines --- Cargo.lock | 2 +- radicle-cli/examples/rad-cob-show.md | 106 +-------------------------- radicle-cli/src/commands/cob.rs | 6 +- 3 files changed, 7 insertions(+), 107 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5676858b..7b3859ae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2153,7 +2153,7 @@ version = "0.9.0" [[package]] name = "radicle-term" -version = "0.11.0" +version = "0.12.0" dependencies = [ "anstyle-query", "anyhow", diff --git a/radicle-cli/examples/rad-cob-show.md b/radicle-cli/examples/rad-cob-show.md index f0af9337..673f8878 100644 --- a/radicle-cli/examples/rad-cob-show.md +++ b/radicle-cli/examples/rad-cob-show.md @@ -65,84 +65,14 @@ We can show the issue COB. ``` $ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object 9de644864342d7a505eb8d58d1ef20e5bb05de2e -{ - "assignees": [], - "title": "spice harvester broken", - "state": { - "status": "open" - }, - "labels": [], - "thread": { - "comments": { - "9de644864342d7a505eb8d58d1ef20e5bb05de2e": { - "author": "z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi", - "reactions": [], - "resolved": false, - "body": "Fremen have attacked, maybe we went too far?", - "edits": [ - { - "author": "z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi", - "timestamp": 1671125284000, - "body": "Fremen have attacked, maybe we went too far?", - "embeds": [] - } - ] - } - }, - "timeline": [ - "9de644864342d7a505eb8d58d1ef20e5bb05de2e" - ] - } -} +{"assignees":[],"title":"spice harvester broken","state":{"status":"open"},"labels":[],"thread":{"comments":{"9de644864342d7a505eb8d58d1ef20e5bb05de2e":{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","reactions":[],"resolved":false,"body":"Fremen have attacked, maybe we went too far?","edits":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"Fremen have attacked, maybe we went too far?","embeds":[]}]}},"timeline":["9de644864342d7a505eb8d58d1ef20e5bb05de2e"]}} ``` We can show the patch COB too. ``` $ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object d1f7f869fde9fac19c1779c4c2e77e8361333f91 -{ - "title": "Start drafting peace treaty", - "author": { - "id": "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi" - }, - "state": { - "status": "open" - }, - "target": "delegates", - "labels": [], - "merges": {}, - "revisions": { - "d1f7f869fde9fac19c1779c4c2e77e8361333f91": { - "id": "d1f7f869fde9fac19c1779c4c2e77e8361333f91", - "author": { - "id": "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi" - }, - "description": [ - { - "author": "z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi", - "timestamp": 1671125284000, - "body": "See details.", - "embeds": [] - } - ], - "base": "f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354", - "oid": "575ed68c716d6aae81ea6b718fd9ac66a8eae532", - "discussion": { - "comments": {}, - "timeline": [] - }, - "reviews": {}, - "timestamp": 1671125284000, - "resolves": [], - "reactions": [] - } - }, - "assignees": [], - "timeline": [ - "d1f7f869fde9fac19c1779c4c2e77e8361333f91" - ], - "reviews": {} -} +{"title":"Start drafting peace treaty","author":{"id":"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"},"state":{"status":"open"},"target":"delegates","labels":[],"merges":{},"revisions":{"d1f7f869fde9fac19c1779c4c2e77e8361333f91":{"id":"d1f7f869fde9fac19c1779c4c2e77e8361333f91","author":{"id":"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"},"description":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"See details.","embeds":[]}],"base":"f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354","oid":"575ed68c716d6aae81ea6b718fd9ac66a8eae532","discussion":{"comments":{},"timeline":[]},"reviews":{},"timestamp":1671125284000,"resolves":[],"reactions":[]}},"assignees":[],"timeline":["d1f7f869fde9fac19c1779c4c2e77e8361333f91"],"reviews":{}} ``` Finally let's update the issue and see the output of `rad cob show` also changes. @@ -150,35 +80,5 @@ Finally let's update the issue and see the output of `rad cob show` also changes ``` $ rad issue label 9de6448 --add bug --no-announce $ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object 9de644864342d7a505eb8d58d1ef20e5bb05de2e -{ - "assignees": [], - "title": "spice harvester broken", - "state": { - "status": "open" - }, - "labels": [ - "bug" - ], - "thread": { - "comments": { - "9de644864342d7a505eb8d58d1ef20e5bb05de2e": { - "author": "z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi", - "reactions": [], - "resolved": false, - "body": "Fremen have attacked, maybe we went too far?", - "edits": [ - { - "author": "z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi", - "timestamp": 1671125284000, - "body": "Fremen have attacked, maybe we went too far?", - "embeds": [] - } - ] - } - }, - "timeline": [ - "9de644864342d7a505eb8d58d1ef20e5bb05de2e" - ] - } -} +{"assignees":[],"title":"spice harvester broken","state":{"status":"open"},"labels":["bug"],"thread":{"comments":{"9de644864342d7a505eb8d58d1ef20e5bb05de2e":{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","reactions":[],"resolved":false,"body":"Fremen have attacked, maybe we went too far?","edits":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"Fremen have attacked, maybe we went too far?","embeds":[]}]}},"timeline":["9de644864342d7a505eb8d58d1ef20e5bb05de2e"]}} ``` diff --git a/radicle-cli/src/commands/cob.rs b/radicle-cli/src/commands/cob.rs index 916b2f26..4787f245 100644 --- a/radicle-cli/src/commands/cob.rs +++ b/radicle-cli/src/commands/cob.rs @@ -234,7 +234,7 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> { let Some(patch) = patches.get(oid)? else { anyhow::bail!(cob::store::Error::NotFound(type_name, *oid)) }; - serde_json::to_writer_pretty(std::io::stdout(), &patch)?; + serde_json::to_writer(std::io::stdout(), &patch)?; println!() } } else if type_name == cob::issue::TYPENAME.clone() { @@ -244,7 +244,7 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> { let Some(issue) = issues.get(oid)? else { anyhow::bail!(cob::store::Error::NotFound(type_name, *oid)) }; - serde_json::to_writer_pretty(std::io::stdout(), &issue)?; + serde_json::to_writer(std::io::stdout(), &issue)?; println!() } } else if type_name == cob::identity::TYPENAME.clone() { @@ -253,7 +253,7 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> { let Some(cob) = cob::get::(&repo, &type_name, oid)? else { anyhow::bail!(cob::store::Error::NotFound(type_name, *oid)) }; - serde_json::to_writer_pretty(std::io::stdout(), &cob.object)?; + serde_json::to_writer(std::io::stdout(), &cob.object)?; println!() } } else {