nose-pluto/nose/bin/new.ts
2025-09-21 13:05:52 -07:00

23 lines
699 B
TypeScript

import { mkdirSync, writeFileSync } from "fs"
import { join } from "path"
import { apps } from "@/webapp"
import { NOSE_WWW } from "@/config"
import { isDir } from "@utils"
import load from "./load"
export default function (project: string) {
if (!project) throw "Please provide a name for your new project\n> new <project>"
if (apps().includes(project)) throw `${project} already exists`
if (!isDir(NOSE_WWW)) throw `no www dir! make one in a real shell:\n$ mkdir -p ${NOSE_WWW}`
mkdirSync(join(NOSE_WWW, project))
writeFileSync(join(NOSE_WWW, project, `index.ts`), `export default (c: Context) =>\n "Hello, world!"`)
load(project)
return `created ${project}`
}