From a0a313996428b598e83016c97adeacd08ad42628 Mon Sep 17 00:00:00 2001 From: krolxon Date: Mon, 22 Apr 2024 16:04:32 +0530 Subject: use subcommands instead of options --- src/cli.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 src/cli.rs (limited to 'src/cli.rs') diff --git a/src/cli.rs b/src/cli.rs new file mode 100755 index 0000000..f1d648c --- /dev/null +++ b/src/cli.rs @@ -0,0 +1,43 @@ +use clap::{Parser, Subcommand}; +#[derive(Parser, Debug)] +#[command(version, about)] +#[clap(author = "krolyxon")] +/// MPD client made with Rust +pub struct Args { + /// pause + #[clap(short, long, default_value = "false")] + pub pause: bool, + + /// toggle pause + #[arg(short, long, default_value = "false")] + pub toggle_pause: bool, + + /// show current status + #[arg(short, long, default_value = "false")] + pub show_status: bool, + + /// use fzf selector for selecting songs + #[arg(short, long, default_value = "false")] + pub fzf_select: bool, + + /// use dmenu selector for selecting songss + #[arg(short, long, default_value = "false")] + pub dmenu_select: bool, + + #[command(subcommand)] + pub command: Command, +} + +#[derive(Debug, Subcommand)] +pub enum Command { + #[command(arg_required_else_help = true)] + Volume { + vol: String, + }, + + Dmenu, + Fzf, + Status, + Pause, + Toggle, +} -- cgit v1.2.3