From 2a4704f5b08bdf51f6ce29b003d1437210359f0a Mon Sep 17 00:00:00 2001 From: Lucien Greathouse Date: Sun, 19 Aug 2018 20:16:38 -0700 Subject: [PATCH] Continue hacking away reimplementing server --- server/src/commands/serve.rs | 38 +++++++++++++++++------------------- server/src/web.rs | 6 +++--- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/server/src/commands/serve.rs b/server/src/commands/serve.rs index ea210587..f89e049f 100644 --- a/server/src/commands/serve.rs +++ b/server/src/commands/serve.rs @@ -1,36 +1,34 @@ -use std::path::Path; -use std::process; -use std::fs; +use std::{ + path::Path, + process, + sync::Arc, +}; -use rand; - -use project::Project; -// use web::{self, WebConfig}; -// use session::Session; -use roblox_studio; +use ::{ + project::Project, + web::Server, + serve_session::ServeSession, + roblox_studio, +}; pub fn serve(fuzzy_project_location: &Path) { - let server_id = rand::random::(); - let project = match Project::load_fuzzy(fuzzy_project_location) { - Ok(project) => { - println!("Using project from {}", fs::canonicalize(&project.file_location).unwrap().display()); - project - }, + Ok(project) => project, Err(error) => { - eprintln!("{}", error); + eprintln!("Fatal: {}", error); process::exit(1); }, }; + println!("Found project at {}", project.file_location.display()); println!("Using project {:#?}", project); roblox_studio::install_bundled_plugin().unwrap(); - // let mut session = Session::new(project.clone()); - // session.start(); + let session = Arc::new(ServeSession::new(project)); + let server = Server::new(Arc::from(session)); - // let web_config = WebConfig::from_session(server_id, port, &session); + println!("Server listening on port 8000."); - // web::start(web_config); + server.listen(8000); } \ No newline at end of file diff --git a/server/src/web.rs b/server/src/web.rs index 2eefc108..ac638a61 100644 --- a/server/src/web.rs +++ b/server/src/web.rs @@ -1,13 +1,13 @@ use std::borrow::Cow; use std::collections::HashMap; -use std::sync::{mpsc, RwLock, Arc}; +use std::sync::{mpsc, Arc}; use rouille::{self, Request, Response}; use rand; use ::{ id::Id, - message_session::{MessageSession, Message}, + message_session::Message, project::Project, rbx::RbxInstance, serve_session::ServeSession, @@ -56,6 +56,7 @@ impl Server { } } + #[allow(unreachable_code)] pub fn handle_request(&self, request: &Request) -> Response { router!(request, (GET) (/) => { @@ -153,7 +154,6 @@ impl Server { ) } - // #[allow(unreachable_code)] pub fn listen(self, port: u64) { let address = format!("localhost:{}", port);