Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
cli: Create terminal::cob
Slack Coder committed 3 years ago
commit 87ff1990c03962a87c71591761b3cc335e26bf52
parent a0588460f3f07894b783e0c5903330e120a89311
3 files changed +18 -11
modified radicle-cli/src/commands/patch.rs
@@ -8,7 +8,6 @@ mod list;
mod show;

use std::ffi::OsString;
-
use std::str::FromStr;

use anyhow::anyhow;

@@ -94,14 +93,6 @@ pub struct Options {
    pub verbose: bool,
}

-
fn parse_patch_id(val: OsString) -> Result<OptPatch, anyhow::Error> {
-
    let val = val
-
        .to_str()
-
        .ok_or_else(|| anyhow!("patch id specified is not UTF-8"))?;
-
    let patch_id = PatchId::from_str(val).map_err(|_| anyhow!("invalid patch id '{}'", val))?;
-
    Ok(OptPatch::Patch(patch_id))
-
}
-

impl Args for Options {
    fn from_args(args: Vec<OsString>) -> anyhow::Result<(Self, Vec<OsString>)> {
        use lexopt::prelude::*;
@@ -166,10 +157,10 @@ impl Args for Options {
                    unknown => anyhow::bail!("unknown operation '{}'", unknown),
                },
                Value(val) if op == Some(OperationName::Show) && patch_id == OptPatch::Any => {
-
                    patch_id = parse_patch_id(val)?;
+
                    patch_id = OptPatch::Patch(term::cob::parse_patch_id(val)?);
                }
                Value(val) if op == Some(OperationName::Update) && patch_id == OptPatch::Any => {
-
                    patch_id = parse_patch_id(val)?;
+
                    patch_id = OptPatch::Patch(term::cob::parse_patch_id(val)?);
                }
                _ => return Err(anyhow::anyhow!(arg.unexpected())),
            }
modified radicle-cli/src/terminal.rs
@@ -1,4 +1,5 @@
pub mod args;
+
pub mod cob;
pub mod command;
pub mod format;
pub mod io;
added radicle-cli/src/terminal/cob.rs
@@ -0,0 +1,15 @@
+
use std::str::FromStr;
+

+
use super::*;
+
use radicle::cob::patch;
+

+
use anyhow::anyhow;
+

+
pub fn parse_patch_id(val: OsString) -> Result<patch::PatchId, anyhow::Error> {
+
    let val = val
+
        .to_str()
+
        .ok_or_else(|| anyhow!("patch id specified is not UTF-8"))?;
+
    let patch_id =
+
        patch::PatchId::from_str(val).map_err(|_| anyhow!("invalid patch id '{}'", val))?;
+
    Ok(patch_id)
+
}