Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
cli: add rid function for Id parsing
Fintan Halpenny committed 3 years ago
commit 2b5552546c6dc637aaa282a990083df8a4a0c0c0
parent 5477a3615f30a3d945fb90fbdcece5be00852471
5 files changed +10 -29
modified radicle-cli/src/commands/checkout.rs
@@ -60,10 +60,7 @@ impl Args for Options {
                    }
                }
                Value(val) if id.is_none() => {
-
                    let val = val.to_string_lossy();
-
                    let val = Id::from_str(&val).context(format!("invalid id '{val}'"))?;
-

-
                    id = Some(val);
+
                    id = Some(term::args::rid(&val)?);
                }
                _ => return Err(anyhow::anyhow!(arg.unexpected())),
            }
modified radicle-cli/src/commands/delegate.rs
@@ -1,5 +1,4 @@
use std::ffi::OsString;
-
use std::str::FromStr;

use anyhow::{anyhow, Context as _};

@@ -86,13 +85,7 @@ impl Args for Options {
                        did = Some(term::args::did(&val)?);
                    }
                    Some(OperationName::List) => {
-
                        // TODO: create args::project_id function
-
                        let val = val.to_string_lossy();
-
                        if let Ok(val) = Id::from_str(&val) {
-
                            id = Some(val);
-
                        } else {
-
                            return Err(anyhow!("invalid Project ID '{}'", val));
-
                        }
+
                        id = Some(term::args::rid(&val)?);
                    }
                    None => continue,
                },
modified radicle-cli/src/commands/edit.rs
@@ -1,5 +1,4 @@
use std::ffi::OsString;
-
use std::str::FromStr;

use anyhow::{anyhow, Context as _};

@@ -45,13 +44,7 @@ impl Args for Options {
                    return Err(Error::Help.into());
                }
                Value(val) if id.is_none() => {
-
                    let val = val.to_string_lossy();
-

-
                    if let Ok(val) = Id::from_str(&val) {
-
                        id = Some(val);
-
                    } else {
-
                        return Err(anyhow!("invalid ID '{}'", val));
-
                    }
+
                    id = Some(term::args::rid(&val)?);
                }
                _ => return Err(anyhow::anyhow!(arg.unexpected())),
            }
modified radicle-cli/src/commands/rm.rs
@@ -1,6 +1,5 @@
use std::ffi::OsString;
use std::fs;
-
use std::str::FromStr;

use anyhow::anyhow;

@@ -52,13 +51,7 @@ impl Args for Options {
                    return Err(Error::Help.into());
                }
                Value(val) if id.is_none() => {
-
                    let val = val.to_string_lossy();
-

-
                    if let Ok(val) = Id::from_str(&val) {
-
                        id = Some(val);
-
                    } else {
-
                        return Err(anyhow!("invalid ID '{}'", val));
-
                    }
+
                    id = Some(term::args::rid(&val)?);
                }
                _ => return Err(anyhow::anyhow!(arg.unexpected())),
            }
modified radicle-cli/src/terminal/args.rs
@@ -3,7 +3,7 @@ use std::str::FromStr;

use anyhow::anyhow;
use radicle::crypto;
-
use radicle::prelude::Did;
+
use radicle::prelude::{Did, Id};

#[derive(thiserror::Error, Debug)]
pub enum Error {
@@ -85,3 +85,8 @@ pub fn did(val: &OsString) -> anyhow::Result<Did> {
    };
    Ok(peer)
}
+

+
pub fn rid(val: &OsString) -> anyhow::Result<Id> {
+
    let val = val.to_string_lossy();
+
    Id::from_str(&val).map_err(|_| anyhow!("invalid repository ID '{}'", val))
+
}