From d972eed6b596d415a0aa6117a05bd107dbb8a0ae Mon Sep 17 00:00:00 2001 From: Till Hoeppner Date: Mon, 23 Mar 2015 16:41:44 +0100 Subject: Initial commit. --- src/main.rs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/main.rs (limited to 'src/main.rs') 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 ... + +Options: + -h --help Show this screen. + -v --version Show the version (duh). +"; + +#[derive(RustcDecodable, Debug)] +struct Args { + cmd_parse: bool, + arg_file: Vec, + 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 = BufReader::new(File::open(file).unwrap()); + let iter = parser.decode(f); + println!("Obtained event iterator"); + for e in iter { println!("{:?}", e) } + } + } +} -- cgit v1.2.3