From ea31040ec6202d748d4465998213f91b213cdf71 Mon Sep 17 00:00:00 2001 From: Fintan Halpenny Date: Thu, 21 Mar 2024 11:59:03 +0000 Subject: [PATCH] cli: do not require RID for sync inventory The inventory operation of the `rad sync` command does not require an RID. Localise resolving the RID in the match arms that require it. Signed-off-by: Fintan Halpenny X-Clacks-Overhead: GNU Terry Pratchett --- radicle-cli/src/commands/sync.rs | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/radicle-cli/src/commands/sync.rs b/radicle-cli/src/commands/sync.rs index 27405f3e..1af04476 100644 --- a/radicle-cli/src/commands/sync.rs +++ b/radicle-cli/src/commands/sync.rs @@ -298,15 +298,6 @@ impl Args for Options { pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> { let profile = ctx.profile()?; - let rid = match options.rid { - Some(rid) => rid, - None => { - let (_, rid) = - radicle::rad::cwd().context("Current directory is not a Radicle repository")?; - - rid - } - }; let mut node = radicle::Node::new(profile.socket()); if !node.is_running() { anyhow::bail!( @@ -316,13 +307,29 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> { match options.op { Operation::Status => { + let rid = match options.rid { + Some(rid) => rid, + None => { + let (_, rid) = radicle::rad::cwd() + .context("Current directory is not a Radicle repository")?; + rid + } + }; sync_status(rid, &mut node, &profile, &options)?; } Operation::Synchronize(SyncMode::Repo { settings, direction, }) => { - let settings = settings.with_profile(&profile); + let rid = match options.rid { + Some(rid) => rid, + None => { + let (_, rid) = radicle::rad::cwd() + .context("Current directory is not a Radicle repository")?; + rid + } + }; + let settings = settings.clone().with_profile(&profile); if [SyncDirection::Fetch, SyncDirection::Both].contains(&direction) { if !profile.policies()?.is_seeding(&rid)? {