summaryrefslogtreecommitdiff
path: root/src/flags.rs
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2018-09-22 01:03:24 -0400
committerRyan Dahl <ry@tinyclouds.org>2018-09-25 17:02:49 -0400
commita6f6d0b7126ae53347bf41ad8751bfdce400e271 (patch)
treea4c3facbbf33181e3f6b08ccc3eb48a0bc8b79c7 /src/flags.rs
parent1956d6846c0ef716455f3cf6b1d5caa6cee09a08 (diff)
Clean up flags.
Diffstat (limited to 'src/flags.rs')
-rw-r--r--src/flags.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/flags.rs b/src/flags.rs
index ceeb9e564..ed60a0280 100644
--- a/src/flags.rs
+++ b/src/flags.rs
@@ -1,10 +1,13 @@
// Copyright 2018 the Deno authors. All rights reserved. MIT license.
use libc::c_int;
use libdeno;
+use log;
use std::ffi::CStr;
use std::ffi::CString;
use std::mem;
+use std::process::exit;
use std::vec::Vec;
+use version;
// Creates vector of strings, Vec<String>
#[cfg(test)]
@@ -25,6 +28,24 @@ pub struct DenoFlags {
pub deps_flag: bool,
}
+pub fn process(flags: &DenoFlags) {
+ if flags.help {
+ print_usage();
+ exit(0);
+ }
+
+ if flags.version {
+ version::print_version();
+ exit(0);
+ }
+
+ let mut log_level = log::LevelFilter::Info;
+ if flags.log_debug {
+ log_level = log::LevelFilter::Debug;
+ }
+ log::set_max_level(log_level);
+}
+
pub fn print_usage() {
println!(
"Usage: deno script.ts
@@ -43,6 +64,8 @@ pub fn print_usage() {
// Parses flags for deno. This does not do v8_set_flags() - call that separately.
pub fn set_flags(args: Vec<String>) -> (DenoFlags, Vec<String>) {
+ let args = v8_set_flags(args);
+
let mut flags = DenoFlags::default();
let mut rest = Vec::new();
let mut arg_iter = args.iter();