1 | #!/usr/bin/env node
|
2 |
|
3 | const program = require("commander");
|
4 | const fs = require("fs");
|
5 | const cp = require("child_process");
|
6 |
|
7 | const FileSystemHelper = require("./filesystem.helper");
|
8 |
|
9 | const TsConfigJsonData = require("./tsconfig-json.data");
|
10 | const GetPackageJsonData = require("./package-json-data");
|
11 | const IndexTsData = require("./index-ts-data");
|
12 | const ExampleRouteData = require("./example-route-data");
|
13 |
|
14 | program
|
15 | .version("1.6.2")
|
16 | .command("new <projectName>").description("Creates a new project for a API RESTfull using Symetrical").action(projectName => {
|
17 | if (fs.existsSync(projectName)) return console.log("Directory already exists!");
|
18 |
|
19 | fs.mkdirSync(projectName);
|
20 | FileSystemHelper.CreateFile(projectName + "/tsconfig.json", TsConfigJsonData);
|
21 | FileSystemHelper.CreateFile(projectName + "/package.json", GetPackageJsonData(projectName));
|
22 | FileSystemHelper.CreateFile(projectName + "/.gitignore", "node_modules");
|
23 | fs.mkdirSync(projectName + "/src");
|
24 | FileSystemHelper.CreateFile(projectName + "/src/index.ts", IndexTsData);
|
25 | fs.mkdirSync(projectName + "/src/routes");
|
26 | FileSystemHelper.CreateFile(projectName + "/src/routes/example.route.ts", ExampleRouteData);
|
27 | cp.exec(`cd ${projectName} && git init && npm install`, (err, stdout, stderr) => {
|
28 | if (err) throw err;
|
29 |
|
30 | console.log(stdout);
|
31 | console.log(stderr);
|
32 | });
|
33 | })
|
34 | .parse(process.argv); |
\ | No newline at end of file |