codeberg_cli/actions/label/
mod.rs1use crate::render::option::option_display;
2
3pub mod create;
4pub mod delete;
5pub mod edit;
6pub mod list;
7
8use clap::Subcommand;
9
10use super::GeneralArgs;
11
12#[derive(Subcommand, Debug)]
14pub enum LabelArgs {
15 List(list::ListLabelsArgs),
16 Create(create::CreateLabelArgs),
17 Delete(delete::DeleteLabelArgs),
18 Edit(edit::EditLabelArgs),
19}
20
21impl LabelArgs {
22 pub async fn run(self, general_args: GeneralArgs) -> anyhow::Result<()> {
23 match self {
24 LabelArgs::List(args) => args.run(general_args).await,
25 LabelArgs::Create(args) => args.run(general_args).await,
26 LabelArgs::Delete(args) => args.run(general_args).await,
27 LabelArgs::Edit(args) => args.run(general_args).await,
28 }
29 }
30}
31
32fn display_label(label: &forgejo_api::structs::Label) -> String {
33 option_display(&label.name)
34}