nose-pluto/bin/mkproject.ts
2025-10-08 13:57:21 -07:00

24 lines
763 B
TypeScript

// Create a new project.
import { mkdirSync, writeFileSync } from "fs"
import { join } from "path"
import { projects } from "@/project"
import { NOSE_DIR } from "@/config"
import load from "./load"
export default function (project: string) {
if (!project) throw "usage: new <project name>"
if (projects().includes(project)) throw `${project} already exists`
const dir = join(NOSE_DIR, project)
mkdirSync(join(dir, "bin"), { recursive: true })
writeFileSync(join(dir, `index.tsx`), `export default (c: Context) =>\n "Hello from the ${project} project!"`)
writeFileSync(join(dir, "bin", `${project}.ts`), `export default function() {\n return "The ${project} project lives!"\n}`)
load(project)
return `Created ${project}`
}