cli: Implement `patch delete`
This commit is contained in:
parent
e972cda2c4
commit
cb3b7a3765
|
|
@ -4,6 +4,8 @@ mod checkout;
|
||||||
mod common;
|
mod common;
|
||||||
#[path = "patch/create.rs"]
|
#[path = "patch/create.rs"]
|
||||||
mod create;
|
mod create;
|
||||||
|
#[path = "patch/delete.rs"]
|
||||||
|
mod delete;
|
||||||
#[path = "patch/list.rs"]
|
#[path = "patch/list.rs"]
|
||||||
mod list;
|
mod list;
|
||||||
#[path = "patch/show.rs"]
|
#[path = "patch/show.rs"]
|
||||||
|
|
@ -36,6 +38,7 @@ Usage
|
||||||
rad patch open [<option>...]
|
rad patch open [<option>...]
|
||||||
rad patch update <id> [<option>...]
|
rad patch update <id> [<option>...]
|
||||||
rad patch checkout <id>
|
rad patch checkout <id>
|
||||||
|
rad patch delete <id>
|
||||||
|
|
||||||
Create/Update options
|
Create/Update options
|
||||||
|
|
||||||
|
|
@ -56,6 +59,7 @@ pub enum OperationName {
|
||||||
Open,
|
Open,
|
||||||
Show,
|
Show,
|
||||||
Update,
|
Update,
|
||||||
|
Delete,
|
||||||
Checkout,
|
Checkout,
|
||||||
#[default]
|
#[default]
|
||||||
List,
|
List,
|
||||||
|
|
@ -73,6 +77,9 @@ pub enum Operation {
|
||||||
patch_id: Option<PatchId>,
|
patch_id: Option<PatchId>,
|
||||||
message: Message,
|
message: Message,
|
||||||
},
|
},
|
||||||
|
Delete {
|
||||||
|
patch_id: PatchId,
|
||||||
|
},
|
||||||
Checkout {
|
Checkout {
|
||||||
patch_id: PatchId,
|
patch_id: PatchId,
|
||||||
},
|
},
|
||||||
|
|
@ -154,6 +161,7 @@ impl Args for Options {
|
||||||
"o" | "open" => op = Some(OperationName::Open),
|
"o" | "open" => op = Some(OperationName::Open),
|
||||||
"s" | "show" => op = Some(OperationName::Show),
|
"s" | "show" => op = Some(OperationName::Show),
|
||||||
"u" | "update" => op = Some(OperationName::Update),
|
"u" | "update" => op = Some(OperationName::Update),
|
||||||
|
"d" | "delete" => op = Some(OperationName::Delete),
|
||||||
"c" | "checkout" => op = Some(OperationName::Checkout),
|
"c" | "checkout" => op = Some(OperationName::Checkout),
|
||||||
unknown => anyhow::bail!("unknown operation '{}'", unknown),
|
unknown => anyhow::bail!("unknown operation '{}'", unknown),
|
||||||
},
|
},
|
||||||
|
|
@ -176,6 +184,9 @@ impl Args for Options {
|
||||||
OperationName::Show => Operation::Show {
|
OperationName::Show => Operation::Show {
|
||||||
patch_id: patch_id.ok_or_else(|| anyhow!("a patch id must be provided"))?,
|
patch_id: patch_id.ok_or_else(|| anyhow!("a patch id must be provided"))?,
|
||||||
},
|
},
|
||||||
|
OperationName::Delete => Operation::Delete {
|
||||||
|
patch_id: patch_id.ok_or_else(|| anyhow!("a patch id must be provided"))?,
|
||||||
|
},
|
||||||
OperationName::Update => Operation::Update { patch_id, message },
|
OperationName::Update => Operation::Update { patch_id, message },
|
||||||
OperationName::Checkout => Operation::Checkout {
|
OperationName::Checkout => Operation::Checkout {
|
||||||
patch_id: patch_id.ok_or_else(|| anyhow!("a patch id must be provided"))?,
|
patch_id: patch_id.ok_or_else(|| anyhow!("a patch id must be provided"))?,
|
||||||
|
|
@ -230,6 +241,9 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
|
||||||
&options,
|
&options,
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
|
Operation::Delete { patch_id } => {
|
||||||
|
delete::run(&repository, &profile, &patch_id)?;
|
||||||
|
}
|
||||||
Operation::Checkout { ref patch_id } => {
|
Operation::Checkout { ref patch_id } => {
|
||||||
checkout::run(&repository, &workdir, patch_id)?;
|
checkout::run(&repository, &workdir, patch_id)?;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
use radicle::cob::patch;
|
||||||
|
use radicle::prelude::*;
|
||||||
|
use radicle::storage::git::Repository;
|
||||||
|
|
||||||
|
pub fn run(repository: &Repository, profile: &Profile, patch_id: &PatchId) -> anyhow::Result<()> {
|
||||||
|
let signer = &term::signer(profile)?;
|
||||||
|
let patches = patch::Patches::open(repository)?;
|
||||||
|
patches.remove(patch_id, signer)?;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue