Files
full-arch-bootstrap/bin/index.js
2024-10-22 00:23:28 +02:00

42 lines
1.1 KiB
JavaScript
Executable File

#! /usr/bin/env node
const path = require("node:path");
const { execSync } = require("child_process");
const readlineSync = require("readline-sync");
const variants = ["NestJS", "ExpressJS"];
const variant_branch_mapping = { NestJS: "nestjs", ExpressJS: "express" };
console.log("\x1b[34mBackend framework variants:\x1b[0m");
const variant = readlineSync.keyInSelect(
variants,
"\x1b[34m>\x1b[0m Choose backend framework",
);
if (variant < 0) {
console.log("\x1b[31mBye!\x1b[0m");
return;
} else {
const project_name = readlineSync.question(
"\x1b[34m>\x1b[0m Project name (empty for default): \x1b[0m",
);
const git_command =
"git clone -b " +
variant_branch_mapping[variants[variant]] +
" https://github.com/dqnid/full-stack-archetype.git " +
project_name;
console.log("\x1b[34mCloning the repo...\x1b[0m");
console.log("\x1b[34m-------------------\x1b[0m");
execSync(git_command, {
stdio: [0, 1, 2], // stdin, stdout, stderr
cwd: path.resolve(""),
});
console.log("\x1b[32m-----\x1b[0m");
console.log("\x1b[32mDone!\x1b[0m");
console.log("\x1b[32m-----\x1b[0m");
}