Files
rojo/server/src/commands/serve.rs
Lucien Greathouse ec1f9bd706 merge impl-v2: server
2018-06-10 22:59:04 -07:00

38 lines
888 B
Rust

use std::path::PathBuf;
use std::process;
use std::fs;
use rand;
use project::Project;
use web::{self, WebConfig};
use session::Session;
pub fn serve(project_dir: &PathBuf, override_port: Option<u64>) {
let server_id = rand::random::<u64>();
let project = match Project::load(project_dir) {
Ok(v) => {
println!("Using project from {}", fs::canonicalize(project_dir).unwrap().display());
v
},
Err(err) => {
eprintln!("{}", err);
process::exit(1);
},
};
let port = override_port.unwrap_or(project.serve_port);
println!("Using project {:#?}", project);
let mut session = Session::new(project.clone());
session.start();
let web_config = WebConfig::from_session(server_id, port, &session);
println!("Server listening on port {}", port);
web::start(web_config);
}