From bd7771e8133a9a4b80760f56b6e139f86621d539 Mon Sep 17 00:00:00 2001 From: Chris Wanstrath <2+defunkt@users.noreply.github.com> Date: Sun, 21 Sep 2025 13:05:52 -0700 Subject: [PATCH] create a new project --- nose/bin/new.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 nose/bin/new.ts 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