aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorkrolxon <krolyxon@tutanota.com>2024-04-22 16:04:32 +0530
committerkrolxon <krolyxon@tutanota.com>2024-04-22 16:04:32 +0530
commita0a313996428b598e83016c97adeacd08ad42628 (patch)
tree08f650b18d44d1bbedb2b94b60fa21174284f788 /src/main.rs
parent3578eae01a8d5a537cff3ad47105bc340b081fe7 (diff)
use subcommands instead of options
Diffstat (limited to 'src/main.rs')
-rwxr-xr-xsrc/main.rs54
1 files changed, 12 insertions, 42 deletions
diff --git a/src/main.rs b/src/main.rs
index f58ce7d..09c7363 100755
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,53 +1,23 @@
+mod cli;
mod connection;
use clap::Parser;
+use cli::Args;
+use cli::Command;
use connection::Connection;
-#[derive(Parser, Debug)]
-#[command(version, about, long_about = None)]
-struct Args {
- /// pause
- #[arg(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,
-}
-
fn main() -> Result<(), Box<dyn std::error::Error>> {
let args = Args::parse();
let mut conn = Connection::new("127.0.0.1:6600")?;
- if args.show_status {
- conn.status();
- }
-
- if args.toggle_pause {
- conn.toggle_pause();
- }
-
- if args.pause {
- conn.pause();
- }
-
- if args.fzf_select {
- conn.play_fzf();
- }
-
- if args.dmenu_select {
- conn.play_dmenu();
+ match args.command {
+ Command::Volume { vol } => {
+ conn.set_volume(vol);
+ }
+ Command::Dmenu => conn.play_dmenu(),
+ Command::Fzf => conn.play_fzf(),
+ Command::Status => conn.status(),
+ Command::Pause => conn.pause(),
+ Command::Toggle => conn.toggle_pause(),
}
Ok(())