From 3dcd04a9fbf91cf9bfc3f66c2233c2d435e0d074 Mon Sep 17 00:00:00 2001 From: chaos Date: Thu, 19 Oct 2023 17:39:28 +0100 Subject: [PATCH] move get-tags/set-tags into "musicutil tags {get,set}" subcommands --- src/args.rs | 3 +-- src/commands/mod.rs | 3 +-- src/commands/{get_tags.rs => tags/get.rs} | 1 - src/commands/tags/mod.rs | 24 ++++++++++++++++++ src/commands/{set_tags.rs => tags/set.rs} | 0 src/main.rs | 30 ++++++++--------------- 6 files changed, 36 insertions(+), 25 deletions(-) rename src/commands/{get_tags.rs => tags/get.rs} (99%) create mode 100644 src/commands/tags/mod.rs rename src/commands/{set_tags.rs => tags/set.rs} (100%) diff --git a/src/args.rs b/src/args.rs index 2fe2581..895ae48 100644 --- a/src/args.rs +++ b/src/args.rs @@ -15,6 +15,5 @@ pub enum Commands { Genhtml(commands::genhtml::GenHTMLCommandArgs), Transcode(commands::transcode::TranscodeCommandArgs), Copy(commands::copy::CopyCommandArgs), - SetTags(commands::set_tags::SetTagsCommandArgs), - GetTags(commands::get_tags::GetTagsCommandArgs), + Tags(commands::tags::TagsArgs), } diff --git a/src/commands/mod.rs b/src/commands/mod.rs index 6abb9cd..58918a9 100644 --- a/src/commands/mod.rs +++ b/src/commands/mod.rs @@ -1,6 +1,5 @@ pub mod copy; pub mod genhtml; -pub mod get_tags; pub mod process; -pub mod set_tags; +pub mod tags; pub mod transcode; diff --git a/src/commands/get_tags.rs b/src/commands/tags/get.rs similarity index 99% rename from src/commands/get_tags.rs rename to src/commands/tags/get.rs index 3447ed6..efffa5b 100644 --- a/src/commands/get_tags.rs +++ b/src/commands/tags/get.rs @@ -14,7 +14,6 @@ pub struct GetTagsCommandArgs { pub json: bool, } - #[derive(Debug, Clone, Serialize)] struct Tags { title: String, diff --git a/src/commands/tags/mod.rs b/src/commands/tags/mod.rs new file mode 100644 index 0000000..a5d524d --- /dev/null +++ b/src/commands/tags/mod.rs @@ -0,0 +1,24 @@ +use crate::args::CLIArgs; + +mod get; +mod set; + +#[derive(Debug, Clone, clap::Args)] +pub struct TagsArgs { + #[clap(subcommand)] + pub command: TagsCommands, +} + +#[derive(Debug, Clone, clap::Subcommand)] +pub enum TagsCommands { + Get(get::GetTagsCommandArgs), + Set(set::SetTagsCommandArgs), +} + +pub fn tags_command(args: CLIArgs, tags_args: &TagsArgs) -> Result<(), Box> { + let command = tags_args.command.to_owned(); + match command { + TagsCommands::Get(subcommand_args) => return get::get_tags_command(args, &subcommand_args), + TagsCommands::Set(subcommand_args) => return set::set_tags_command(args, &subcommand_args), + } +} diff --git a/src/commands/set_tags.rs b/src/commands/tags/set.rs similarity index 100% rename from src/commands/set_tags.rs rename to src/commands/tags/set.rs diff --git a/src/main.rs b/src/main.rs index 89762da..1929fb5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,36 +7,26 @@ pub mod utils; use args::{CLIArgs, Commands}; use clap::Parser; -use commands::copy::copy_command; -use commands::genhtml::genhtml_command; -use commands::get_tags::get_tags_command; -use commands::process::process_command; -use commands::set_tags::set_tags_command; -use commands::transcode::transcode_command; - fn main() -> Result<(), Box> { let cli = CLIArgs::parse(); let command = cli.command.to_owned(); match command { - Commands::Process(process_args) => { - return process_command(cli, &process_args); + Commands::Process(subcommand_args) => { + return commands::process::process_command(cli, &subcommand_args); } - Commands::Genhtml(genhtml_args) => { - return genhtml_command(cli, &genhtml_args); + Commands::Genhtml(subcommand_args) => { + return commands::genhtml::genhtml_command(cli, &subcommand_args); } - Commands::Transcode(transcode_args) => { - return transcode_command(cli, &transcode_args); + Commands::Transcode(subcommand_args) => { + return commands::transcode::transcode_command(cli, &subcommand_args); } - Commands::Copy(copy_args) => { - return copy_command(cli, ©_args); + Commands::Copy(subcommand_args) => { + return commands::copy::copy_command(cli, &subcommand_args); } - Commands::SetTags(set_tags_args) => { - return set_tags_command(cli, &set_tags_args); - } - Commands::GetTags(get_tags_args) => { - return get_tags_command(cli, &get_tags_args); + Commands::Tags(subcommand_args) => { + return commands::tags::tags_command(cli, &subcommand_args); } } }