diff options
author | Till Hoeppner | 2015-03-23 16:41:44 +0100 |
---|---|---|
committer | Till Hoeppner | 2015-03-23 16:41:44 +0100 |
commit | d972eed6b596d415a0aa6117a05bd107dbb8a0ae (patch) | |
tree | 824b4d8bdb40f3b89c7ceb21e20114f76d6ed895 /src/main.rs | |
download | ilc-d972eed6b596d415a0aa6117a05bd107dbb8a0ae.tar.gz ilc-d972eed6b596d415a0aa6117a05bd107dbb8a0ae.tar.xz ilc-d972eed6b596d415a0aa6117a05bd107dbb8a0ae.zip |
Initial commit.
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..1bdf090 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,54 @@ +#![feature(libc, plugin)] +#![plugin(regex_macros)] + +extern crate ilc; +extern crate docopt; +extern crate "rustc-serialize" as rustc_serialize; +extern crate libc; +extern crate regex; + +use std::fs::File; +use std::io::BufReader; + +use docopt::Docopt; + +use ilc::format::{ self, Decode }; + +static USAGE: &'static str = " +A converter and statistics utility for IRC log files. + +Usage: + ilc parse <file>... + +Options: + -h --help Show this screen. + -v --version Show the version (duh). +"; + +#[derive(RustcDecodable, Debug)] +struct Args { + cmd_parse: bool, + arg_file: Vec<String>, + flag_help: bool, + flag_version: bool +} + +fn main() { + let args: Args = Docopt::new(USAGE) + .and_then(|d| d.decode()) + .unwrap_or_else(|e| e.exit()); + if args.flag_help { + println!("{}", USAGE); + unsafe { libc::funcs::c95::stdlib::exit(1) } + } + + if args.cmd_parse { + let mut parser = format::weechat3::Weechat3; + for file in args.arg_file { + let f: BufReader<File> = BufReader::new(File::open(file).unwrap()); + let iter = parser.decode(f); + println!("Obtained event iterator"); + for e in iter { println!("{:?}", e) } + } + } +} |