import cp from "child_process"; import fs from "fs"; export namespace NestiaTemplate { export const clone = (halter: (msg?: string) => never) => async (argv: string[]): Promise => { // VALIDATION const dest: string | undefined = argv[0]; if (dest === undefined) halter(); else if (fs.existsSync(dest) === true) halter("The target directory already exists."); console.log("-----------------------------------------"); console.log(" Nestia Template Kit"); console.log("-----------------------------------------"); // COPY PROJECTS execute(`git clone https://github.com/samchon/backend ${dest}`); console.log(`cd "${dest}"`); process.chdir(dest); // INSTALL DEPENDENCIES execute("npm install"); // BUILD TYPESCRIPT execute("npm run build"); // REMOVE .GIT DIRECTORY cp.execSync("npx rimraf .git"); }; function execute(command: string): void { console.log(`\n$ ${command}`); cp.execSync(command, { stdio: "inherit" }); } }