From 64e2ef3d3b29715e7aec0bfebb3af5b72a833779 Mon Sep 17 00:00:00 2001 From: Lucien Greathouse Date: Fri, 4 Jan 2019 13:40:10 -0800 Subject: [PATCH] Fix build issue, add servePort project option --- server/src/bin.rs | 2 +- server/src/commands/serve.rs | 6 +++--- server/src/project.rs | 3 +++ server/src/session.rs | 3 +-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/server/src/bin.rs b/server/src/bin.rs index 8baec4b8..8145dce2 100644 --- a/server/src/bin.rs +++ b/server/src/bin.rs @@ -65,7 +65,7 @@ fn main() { let port = match sub_matches.value_of("port") { Some(v) => match v.parse::() { - Ok(port) => port, + Ok(port) => Some(port), Err(_) => { error!("Invalid port {}", v); process::exit(1); diff --git a/server/src/commands/serve.rs b/server/src/commands/serve.rs index 777df444..3ed97e85 100644 --- a/server/src/commands/serve.rs +++ b/server/src/commands/serve.rs @@ -34,16 +34,16 @@ impl From for ServeError { pub fn serve(options: &ServeOptions) -> Result<(), ServeError> { info!("Looking for project at {}", options.fuzzy_project_path.display()); - let project = Project::load_fuzzy(&options.fuzzy_project_path)?; + let project = Arc::new(Project::load_fuzzy(&options.fuzzy_project_path)?); info!("Found project at {}", project.file_location.display()); info!("Using project {:#?}", project); - let session = Arc::new(Session::new(project).unwrap()); + let session = Arc::new(Session::new(Arc::clone(&project)).unwrap()); let server = Server::new(Arc::clone(&session)); let port = options.port - // .or(project.serve_port) + .or(project.serve_port) .unwrap_or(DEFAULT_PORT); println!("Rojo server listening on port {}", port); diff --git a/server/src/project.rs b/server/src/project.rs index ce643427..01b8d552 100644 --- a/server/src/project.rs +++ b/server/src/project.rs @@ -77,6 +77,7 @@ impl SourceProjectNode { struct SourceProject { name: String, tree: SourceProjectNode, + serve_port: Option, } impl SourceProject { @@ -86,6 +87,7 @@ impl SourceProject { Project { name: self.name, tree, + serve_port: self.serve_port, file_location: PathBuf::from(project_file_location), } } @@ -169,6 +171,7 @@ pub struct SyncPointProjectNode { pub struct Project { pub name: String, pub tree: ProjectNode, + pub serve_port: Option, pub file_location: PathBuf, } diff --git a/server/src/session.rs b/server/src/session.rs index 91a286ee..76953e9f 100644 --- a/server/src/session.rs +++ b/server/src/session.rs @@ -23,14 +23,13 @@ pub struct Session { } impl Session { - pub fn new(project: Project) -> io::Result { + pub fn new(project: Arc) -> io::Result { let imfs = { let mut imfs = Imfs::new(); imfs.add_roots_from_project(&project)?; Arc::new(Mutex::new(imfs)) }; - let project = Arc::new(project); let message_queue = Arc::new(MessageQueue::new()); let rbx_session = Arc::new(Mutex::new(RbxSession::new(