Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
cli: Split rev and oid parsing functions
cloudhead committed 2 years ago
commit 5442e6699d322ecb1b35d9448b0d305f71333276
parent 90fe50c152853e569e6af288041f909694ed7902
3 files changed +12 -7
modified radicle-cli/src/commands/issue.rs
@@ -229,7 +229,7 @@ impl Args for Options {
                }
                Long("reply-to") if op == Some(OperationName::Comment) => {
                    let val = parser.value()?;
-
                    let rev = term::args::rev(&val)?;
+
                    let rev = term::args::oid(&val)?;

                    reply_to = Some(rev);
                }
@@ -252,7 +252,7 @@ impl Args for Options {
                    unknown => anyhow::bail!("unknown operation '{}'", unknown),
                },
                Value(val) if op.is_some() => {
-
                    let val = term::args::rev(&val)?;
+
                    let val = term::args::oid(&val)?;
                    id = Some(val);
                }
                _ => {
modified radicle-cli/src/commands/patch.rs
@@ -238,7 +238,7 @@ impl Args for Options {
                // Update options.
                Long("revision") if op == Some(OperationName::Update) => {
                    let val = parser.value()?;
-
                    let rev = term::args::rev(&val)?;
+
                    let rev = term::args::oid(&val)?;

                    revision_id = Some(rev);
                }
@@ -246,7 +246,7 @@ impl Args for Options {
                // Comment options.
                Long("reply-to") if op == Some(OperationName::Comment) => {
                    let val = parser.value()?;
-
                    let rev = term::args::rev(&val)?;
+
                    let rev = term::args::oid(&val)?;

                    reply_to = Some(rev);
                }
@@ -297,8 +297,8 @@ impl Args for Options {
                    unknown => anyhow::bail!("unknown operation '{}'", unknown),
                },
                Value(val) if op == Some(OperationName::Redact) => {
-
                    let val = string(&val);
-
                    revision_id = Some(Rev::from(val));
+
                    let rev = term::args::oid(&val)?;
+
                    revision_id = Some(rev);
                }
                Value(val)
                    if patch_id.is_none()
modified radicle-cli/src/terminal/args.rs
@@ -150,8 +150,13 @@ pub fn string(val: &OsString) -> String {
}

pub fn rev(val: &OsString) -> anyhow::Result<Rev> {
+
    let s = val.to_str().ok_or(anyhow!("invalid git rev {val:?}"))?;
+
    Ok(Rev::from(s.to_owned()))
+
}
+

+
pub fn oid(val: &OsString) -> anyhow::Result<Rev> {
    let s = string(val);
-
    let _ = radicle::git::Oid::from_str(&s).map_err(|_| anyhow!("invalid git rev '{s}'"))?;
+
    let _ = radicle::git::Oid::from_str(&s).map_err(|_| anyhow!("invalid git oid '{s}'"))?;

    Ok(Rev::from(s))
}