use std::env;
use std::io::IsTerminal;
use std::path::PathBuf;
use std::process::exit;
use balls::edge::Edge;
fn main() {
let args: Vec<String> = env::args().skip(1).collect();
let edge = Edge::resolve(
env::var_os("HOME").map(PathBuf::from).unwrap_or_default(),
env::var("XDG_CONFIG_HOME").ok(),
env::var("XDG_STATE_HOME").ok(),
env::current_dir().unwrap_or_default(),
env::var("USER").ok(),
env::var("BALLS_PLUGIN_DEPTH").ok(),
env::current_exe().ok(),
env::var_os("PATH"),
env::var("NO_COLOR").ok(),
std::io::stdout().is_terminal(),
env::var("BALLS_CLOCK").ok(),
env::var_os("BALLS_HELD_STORES"),
);
exit(balls::run(&edge, &args));
}