nushell/src/main.rs

75 lines
1.9 KiB
Rust
Raw Normal View History

2019-05-10 16:59:12 +00:00
#![feature(crate_visibility_modifier)]
#![feature(in_band_lifetimes)]
#![feature(async_await)]
2019-05-24 04:34:43 +00:00
#![feature(try_trait)]
2019-05-24 07:29:16 +00:00
#![feature(bind_by_move_pattern_guards)]
2019-05-10 16:59:12 +00:00
2019-05-23 04:30:43 +00:00
mod cli;
2019-05-10 16:59:12 +00:00
mod commands;
2019-05-15 16:12:38 +00:00
mod context;
2019-05-10 16:59:12 +00:00
mod env;
mod errors;
2019-05-28 06:45:18 +00:00
mod evaluate;
2019-05-10 16:59:12 +00:00
mod format;
mod object;
2019-05-11 04:45:57 +00:00
mod parser;
mod prelude;
2019-05-16 21:43:36 +00:00
mod shell;
2019-05-23 04:30:43 +00:00
mod stream;
2019-05-10 16:59:12 +00:00
use clap::{App, Arg};
use log::LevelFilter;
2019-05-10 16:59:12 +00:00
use std::error::Error;
fn main() -> Result<(), Box<Error>> {
let matches = App::new("nu shell")
.version("0.5")
.arg(
Arg::with_name("loglevel")
.short("l")
.long("loglevel")
.value_name("LEVEL")
.possible_values(&["error", "warn", "info", "debug", "trace"])
.takes_value(true),
)
.arg(
Arg::with_name("develop")
.long("develop")
.multiple(true)
.takes_value(true),
)
.get_matches();
let loglevel = match matches.value_of("loglevel") {
None => LevelFilter::Warn,
Some("error") => LevelFilter::Error,
Some("warn") => LevelFilter::Warn,
Some("info") => LevelFilter::Info,
Some("debug") => LevelFilter::Debug,
Some("trace") => LevelFilter::Trace,
_ => unreachable!(),
};
let mut builder = pretty_env_logger::formatted_builder();
if let Ok(s) = std::env::var("RUST_LOG") {
builder.parse_filters(&s);
}
builder.filter_module("nu", loglevel);
match matches.values_of("develop") {
None => {}
Some(values) => for item in values {
println!("filtering {:?}", item);
builder.filter_module(&format!("nu::{}", item), LevelFilter::Trace);
} //println!("{:?}", values.collect::<Vec<&str>>()),
}
builder.try_init()?;
// pretty_env_logger::init();
2019-05-24 04:34:43 +00:00
futures::executor::block_on(crate::cli::cli())?;
Ok(())
2019-05-15 16:12:38 +00:00
}