MCPcopy Create free account
hub / github.com/PerroEngine/Perro / create_project

Function create_project

perro_editor/res/scripts/app/editor_project.rs:3–21  ·  view source on GitHub ↗
(parent_dir: &str, project_name: &str)

Source from the content-addressed store, hash-verified

1use std::path::Path;
2
3pub fn create_project(parent_dir: &str, project_name: &str) -> Result<String, String> {
4 let parent = Path::new(parent_dir);
5 if !parent.is_dir() {
6 return Err("project parent dir missing".to_string());
7 }
8
9 let project_name = project_name.trim();
10 if project_name.is_empty() {
11 return Err("project name empty".to_string());
12 }
13
14 let parent = parent
15 .canonicalize()
16 .unwrap_or_else(|_| parent.to_path_buf());
17 let project_root = parent.join(sanitize_project_dir_name(project_name));
18 perro_api::project::create_new_project(&project_root, project_name)
19 .map_err(|err| format!("failed to scaffold project: {err}"))?;
20 Ok(project_root.to_string_lossy().to_string())
21}
22
23fn sanitize_project_dir_name(name: &str) -> String {
24 let trimmed = name.trim();

Callers 1

Calls 4

create_new_projectFunction · 0.85
joinMethod · 0.80
is_emptyMethod · 0.45

Tested by

no test coverage detected