#![feature(plugin)] #![feature(alloc_system)] #![plugin(rocket_codegen)] extern crate alloc_system; extern crate rocket; extern crate docopt; extern crate swerve; use std::process; use docopt::Docopt; use swerve::cli; use swerve::server; fn main() { let args: cli::Args = Docopt::new(cli::USAGE) .and_then(|d| d.deserialize()) .unwrap_or_else(|e| e.exit()); let is_quiet = args.flag_quiet; if args.flag_help { if !is_quiet { println!("{}", cli::USAGE); } process::exit(0); } if args.flag_license { if is_quiet { std::process::exit(0); } cli::gpl::show_license_and_exit(); } let config_path = args.get_dir().join(".swerve/config.yml"); let swerve_config = cli::SwerveConfig::from_file(&config_path).unwrap_or_else(|e| { println!("Error in config file {} | {}", config_path.to_string_lossy(), e); std::process::exit(2); }); let server = server::create_server(args.clone(), swerve_config.clone()); server.launch(); }