fum-player 1.3.1

A tui-based mpris music client.
mod cli;
mod fum;
mod state;
mod meta;
mod ui;
mod utils;
mod text;
mod widget;
mod config;
mod action;
mod regexes;

use fum::{Fum, FumResult};
use mpris::PlayerFinder;

fn main() -> FumResult<()> {
    let (cli, config) = cli::run()?;

    if let Some(command) = &cli.command {
        match command {
            cli::Commands::ListPlayers => {
                let player_finder = PlayerFinder::new()
                    .map_err(|err| format!("Failed to connect to D-Bus: {err}."))?;

                let players = player_finder
                    .find_all()
                    .map_err(|err| format!("There is no any active players: {err}."))?;

                println!("Active Players:");
                for player in players {
                    let identity = player.identity().to_lowercase();
                    let bus_name = player.bus_name();

                    println!("* {identity} ~> {bus_name}");
                }

                return Ok(());
            }
        }
    }

    Fum::new(&config)?
        .run()?;

    Ok(())
}