#![feature(test)]
extern crate test;
extern crate regex;
extern crate rand;
extern crate chrono;
#[cfg(test)]
use rand::Rng;
#[cfg(test)]
use test::Bencher;
use std::env;
#[macro_use]
mod templatify;
mod context_template;
mod main_template;
mod mod_template;
mod controller_template;
mod model_template;
mod service_template;
mod util_template;
mod utils;
mod generator;
use generator::{create_component, migrate, init};
fn main() {
let mut args = env::args();
args.next();
let mut arg = args.next();
while arg.is_some() {
let unwrapped_arg = arg.unwrap();
if unwrapped_arg == "c" ||
unwrapped_arg == "component" {
let name = args.next().expect("Component flag needs an argument");
create_component(&name);
}
if unwrapped_arg == "init" {
init(&args.next().expect("init needs an argument, form 'fanta init [project-name]'"));
}
if unwrapped_arg == "migrate" {
migrate();
}
arg = args.next();
}
}