use std::env;
use crate::{
cmd,
parser::Parser,
};
pub fn parse_cmdline_options(parser: &mut Parser) -> bool {
let mut args = env::args();
if let None = args.next() {
return true;
}
let arg1 = match args.next() {
None => return true,
Some(s) => s,
};
if arg1 == "-h" || arg1 == "--help" {
cmd::print_usage();
return false;
} else if arg1 == "-n" || arg1 == "--no-interactive" {
parser.set_non_interactive_mode();
load_file(args.next(), parser);
return false; } else {
if !load_file(Some(arg1), parser) {
return false;
}
}
for name in args {
if !load_file(Some(name), parser) {
return false;
}
}
true
}
fn load_file(filename: Option<String>, parser: &mut Parser) -> bool {
if let Err(e) = parser.parse_file(filename) {
eprintln!("{}", e);
return false;
}
true
}