add support for MPD_HOST and MPD_PORT env vars

This commit is contained in:
figsoda 2021-02-07 13:44:29 -05:00
parent eefe368b0b
commit 5259706206
2 changed files with 17 additions and 2 deletions

View file

@ -57,6 +57,13 @@ option | description
--ups \<number> | The amount of status updates per second --ups \<number> | The amount of status updates per second
## Environment variables
Setting both `MPD_HOST` and `MPD_PORT` is the equalvalent of `--address $MPD_HOST:$MPD_PORT`
Precedence: command line arguments > environment variables > configuration file
## Key bindings ## Key bindings
Key | Action Key | Action

View file

@ -26,8 +26,9 @@ use tui::{backend::CrosstermBackend, widgets::ListState, Terminal};
use std::{ use std::{
cmp::min, cmp::min,
fs, env, fs,
io::stdout, io::stdout,
net::SocketAddr,
process::exit, process::exit,
sync::{ sync::{
atomic::{AtomicU8, Ordering}, atomic::{AtomicU8, Ordering},
@ -84,7 +85,14 @@ async fn run() -> Result<()> {
defaults::config() defaults::config()
}; };
let addr = &opts.address.unwrap_or(cfg.address); let addr = &if let Some(addr) = opts.address {
addr
} else if let (Ok(host), Ok(port)) = (env::var("MPD_HOST"), env::var("MPD_PORT")) {
SocketAddr::new(host.parse()?, port.parse()?)
} else {
cfg.address
};
let mut idle_cl = Client::init(addr).await?; let mut idle_cl = Client::init(addr).await?;
let mut cl = Client::init(addr).await?; let mut cl = Client::init(addr).await?;