diff --git a/nose/bin/new.ts b/nose/bin/new.ts new file mode 100644 index 0000000..a89343d --- /dev/null +++ b/nose/bin/new.ts @@ -0,0 +1,23 @@ +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 " + + 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}` +} \ No newline at end of file