79 lines
1.6 KiB
JavaScript
79 lines
1.6 KiB
JavaScript
#!/usr/bin/env node
|
|
const path = require("path");
|
|
const slug = require("slugify");
|
|
const { exec } = require("child_process");
|
|
const [, , cmd, name] = process.argv;
|
|
|
|
function s(value) {
|
|
return slug(value, {
|
|
replacement: "-", // replace spaces with replacement
|
|
remove: /[\/()._]/g, // regex to remove characters
|
|
lower: true, // result in lower case
|
|
});
|
|
}
|
|
|
|
function log(value) {
|
|
console.log(value);
|
|
}
|
|
|
|
function generate_controller() {
|
|
const pro = exec(`node cli/generate-controller ${s(name).replace(/controller/, "")}`);
|
|
pro.stdout.on("data", (data) => {
|
|
log(data.toString());
|
|
});
|
|
|
|
pro.stderr.on("data", (data) => {
|
|
log(`${data.toString()}`);
|
|
});
|
|
|
|
pro.on("exit", (code) => {
|
|
log(`Process exit with code ${code}.`);
|
|
});
|
|
}
|
|
|
|
function create_release() {
|
|
const release = exec(`node cli/mkrelease`);
|
|
|
|
release.stdout.on("data", (data) => {
|
|
log(data.toString());
|
|
});
|
|
|
|
release.stderr.on("data", (data) => {
|
|
log(`${data.toString()}`);
|
|
});
|
|
|
|
release.on("exit", (code) => {
|
|
log(`Build success with code ${code}.`);
|
|
log("Start Coping");
|
|
});
|
|
}
|
|
|
|
function generate_validator() {
|
|
const pro = exec(`node cli/generate-validator ${s(name).replace(/validator|validators/, "")}`);
|
|
pro.stdout.on("data", (data) => {
|
|
log(data.toString());
|
|
});
|
|
|
|
pro.stderr.on("data", (data) => {
|
|
log(`${data.toString()}`);
|
|
});
|
|
|
|
pro.on("exit", (code) => {
|
|
log(`Process exit with code ${code}.`);
|
|
});
|
|
}
|
|
|
|
switch (cmd) {
|
|
case "controller":
|
|
generate_controller();
|
|
break;
|
|
case "release":
|
|
create_release();
|
|
break;
|
|
case "validator":
|
|
generate_validator();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|