diff options
Diffstat (limited to 'src/main.rs')
| -rwxr-xr-x | src/main.rs | 54 |
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(()) |
