From 54da8264471af0c6247837a4ae8771b3afa98a5e Mon Sep 17 00:00:00 2001 From: Lucien Greathouse Date: Wed, 9 Jan 2019 21:30:00 -0800 Subject: [PATCH] Implement rojo init for models --- server/src/project.rs | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/server/src/project.rs b/server/src/project.rs index 5647625c..6cfd147f 100644 --- a/server/src/project.rs +++ b/server/src/project.rs @@ -289,8 +289,31 @@ impl Project { Ok(project_path) } - pub fn init_model(_project_fuzzy_path: &Path) -> Result { - unimplemented!(); + pub fn init_model(project_fuzzy_path: &Path) -> Result { + let project_path = Project::init_pick_path(project_fuzzy_path)?; + let project_folder_path = project_path.parent().unwrap(); + let project_name = if project_fuzzy_path == project_path { + project_fuzzy_path.parent().unwrap().file_name().unwrap().to_str().unwrap() + } else { + project_fuzzy_path.file_name().unwrap().to_str().unwrap() + }; + + let tree = ProjectNode::SyncPoint(SyncPointProjectNode { + path: project_folder_path.join("src"), + }); + + let project = Project { + name: project_name.to_string(), + tree, + serve_port: None, + serve_place_ids: None, + file_location: project_path.clone(), + }; + + project.save() + .map_err(ProjectInitError::SaveError)?; + + Ok(project_path) } fn init_pick_path(project_fuzzy_path: &Path) -> Result {