use crate::ported::commands::main::{finish_args, get_argparser, Args};
use std::collections::HashMap;
pub fn main(args: &[String]) -> i32 {
let parser = get_argparser();
let mut ext: Option<String> = None;
let mut i = 0;
while i < args.len() {
match args[i].as_str() {
"--ext" | "-e" => {
i += 1;
if let Some(e) = args.get(i) {
ext = Some(e.clone());
}
}
_ => {}
}
i += 1;
}
let _ = parser;
let mut parsed = Args::default();
if let Some(e) = ext {
parsed.ext = vec![e];
} else {
eprintln!("powerline-render: --ext is required");
return 2;
}
let environ: HashMap<String, String> = std::env::vars().collect();
let _ = finish_args(&environ, &mut parsed, false);
0
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn main_returns_2_when_ext_missing() {
assert_eq!(main(&[]), 2);
}
#[test]
fn main_returns_0_when_ext_supplied_long() {
let r = main(&["--ext".to_string(), "shell".to_string()]);
assert_eq!(r, 0);
}
#[test]
fn main_returns_0_when_ext_supplied_short() {
let r = main(&["-e".to_string(), "tmux".to_string()]);
assert_eq!(r, 0);
}
}