From d0145f02bdee0252eda49496eba8c789e5177c0e Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sat, 18 Mar 2023 18:05:58 -0600 Subject: [PATCH] new-vscode-project template command --- src/kiss/Main.hx | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/kiss/Main.hx b/src/kiss/Main.hx index 128cb29..0c18965 100644 --- a/src/kiss/Main.hx +++ b/src/kiss/Main.hx @@ -39,6 +39,8 @@ class Main { newFlixelProject(args); case "new-express-project": newExpressProject(args); + case "new-vscode-project": + newVscodeProject(args); case "implement": // kiss implement [type] [fromLib] var _pwd = args.pop(); @@ -197,7 +199,30 @@ class Main { makeFileForNewProject(["package.json"]); var packageFile = Path.join([projectDir, "package.json"]); var packageJson = Json.parse(File.getContent(packageFile)); - packageJson.title = title; + packageJson.name = title; + File.saveContent(packageFile, Json.stringify(packageJson, null, "\t")); + makeFileForNewProject(["test.sh"]); + } + + static function newVscodeProject(args:Array) { + var title = promptFor("title (lower-case!)").toLowerCase(); + var pkg = title.replace("-", "_"); + var kissVscodeApiLibPath = new Process("haxelib", ["libpath", "kiss-vscode-api"]).stdout.readAll().toString().trim(); + var workingDir = Sys.args().pop(); + var projectDir = Path.join([workingDir, title]); + FileSystem.createDirectory(projectDir); + + var makeFileForNewProject:haxe.Constraints.Function = _makeFileForNewProject.bind(kissVscodeApiLibPath, _, workingDir, title, pkg); + var makeFolderForNewProject:haxe.Constraints.Function = _makeFolderForNewProject.bind(kissVscodeApiLibPath, _, workingDir, title, pkg); + makeFolderForNewProject(["src"]); + makeFileForNewProject([".gitignore"]); + makeFileForNewProject([".vscodeignore"]); + makeFileForNewProject(["README.md"]); + makeFileForNewProject(["build.hxml"]); + makeFileForNewProject(["package.json"]); + var packageFile = Path.join([projectDir, "package.json"]); + var packageJson = Json.parse(File.getContent(packageFile)); + packageJson.name = title; File.saveContent(packageFile, Json.stringify(packageJson, null, "\t")); makeFileForNewProject(["test.sh"]); }