@orbs-network/orbs-project-generator
Advanced tools
Comparing version 0.1.1 to 0.2.1
@@ -5,4 +5,8 @@ #!/usr/bin/env node | ||
yargs.command("create <name> <path>", "generates new project", () => {}, (argv) => { | ||
yargs.command("create <name> <path>", "generates new project", () => { }, (argv) => { | ||
create(argv); | ||
}).option("force", { | ||
alias: "f", | ||
type: "boolean", | ||
description: "Overwrite output" | ||
}).help().argv |
{ | ||
"name": "@orbs-network/orbs-project-generator", | ||
"version": "0.1.1", | ||
"version": "0.2.1", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -5,7 +5,8 @@ # Orbs project generator | ||
* contract in `src/contract/contract.go` | ||
* contract in `src/contract/app/contract.go` | ||
* JS interface in `src/app.js` | ||
* Deployment script in `src/deploy.js` | ||
* Deployment script in `src/deploy_app.js` | ||
* End to end test in `test/app_test.js` | ||
* `package.json` with all required dependencies | ||
* `.gitignore` | ||
@@ -22,2 +23,4 @@ ## Installation | ||
You can run the generator multiple times in the same directory to generated scaffolding. | ||
``` | ||
@@ -24,0 +27,0 @@ orbs-project-generator create <AppName> <path> |
@@ -1,2 +0,2 @@ | ||
const { readFileSync, writeFileSync } = require("fs"); | ||
const { readFileSync, writeFileSync, existsSync } = require("fs"); | ||
const { join } = require("path"); | ||
@@ -15,3 +15,10 @@ const { template, toLower } = require("lodash"); | ||
function writeFile(path, contents) { | ||
function writeFile(path, contents, force) { | ||
if (existsSync(path)) { | ||
if (!force) { | ||
console.error(`File already exists, skipping: ${path}`); | ||
return; | ||
} | ||
} | ||
console.log(path) | ||
@@ -21,3 +28,3 @@ writeFileSync(path, contents); | ||
function create({ name, path }) { | ||
function create({ name, path, force }) { | ||
const params = { | ||
@@ -30,3 +37,3 @@ AppName: name, | ||
const src = join(path, "src"); | ||
const contract = join(src, "contract"); | ||
const contract = join(src, "contract", params.AppNameLowercase); | ||
const test = join(path, "test"); | ||
@@ -38,10 +45,10 @@ | ||
writeFile(join(path, ".gitignore"), renderTemplate(".gitignore", {})); | ||
writeFile(join(path, "package.json"), renderTemplate("package.json", params)); | ||
writeFile(join(path, ".gitignore"), renderTemplate(".gitignore", {}), force); | ||
writeFile(join(path, "package.json"), renderTemplate("package.json", params), force); | ||
writeFile(join(src, "deploy.js"), renderTemplate("deploy.js", params)); | ||
writeFile(join(src, `${params.AppNameLowercase}.js`), renderTemplate("interface.js", params)); | ||
writeFile(join(contract, "contract.go"), readFileSync(join(__dirname, "templates", "contract", "contract.go"))); | ||
writeFile(join(src, `deploy_${params.AppNameLowercase}.js`), renderTemplate("deploy.js", params), force); | ||
writeFile(join(src, `${params.AppNameLowercase}.js`), renderTemplate("interface.js", params), force); | ||
writeFile(join(contract, "contract.go"), readFileSync(join(__dirname, "templates", "contract", "contract.go")), force); | ||
writeFile(join(test, `${params.AppNameLowercase}_test.js`), renderTemplate("test.js", params)); | ||
writeFile(join(test, `${params.AppNameLowercase}_test.js`), renderTemplate("test.js", params), force); | ||
} | ||
@@ -48,0 +55,0 @@ |
@@ -29,2 +29,3 @@ const { exec } = require("child_process"); | ||
await runProcess(`node index.js create Hello ${tmp}`, join(__dirname, "..")); | ||
await runProcess(`node index.js create Bye ${tmp}`, join(__dirname, "..")); | ||
@@ -31,0 +32,0 @@ await runProcess(`npm install`, tmp); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
9015
97
37