use std::fs;
use std::io;
use std::path::{Path, PathBuf};
pub fn scaffold_project_cwd(name: &str, project_kind: &str) -> anyhow::Result<()> {
let cwd = std::env::current_dir()?;
let project_dir = cwd.join(name);
if project_dir.exists() {
anyhow::bail!("Target directory already exists: {}", project_dir.display());
}
fs::create_dir_all(&project_dir)?;
fs::create_dir_all(project_dir.join("src"))?;
fs::write(
project_dir.join("README.md"),
format!(
"# {}\n\nGenerated by lingfu.\n\nProject kind: {}\n",
name, project_kind
),
)?;
fs::write(
project_dir.join("src").join("main.ling"),
format!(
"# {}\n# Entry point (scaffold)\n\n# NOTE: This is a placeholder generated by lingfu.\n\nbind start = do {{ print(\"Hello from {}\") }}\n",
name, name
),
)?;
Ok(())
}
pub fn sanitize_project_kind(kind: &str) -> String {
kind.trim().replace(' ', "_")
}