44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
// tslint:disable:no-console
|
|
import fs from "fs";
|
|
import prompt from "prompt";
|
|
// import shelljs from "shelljs";
|
|
import { $ } from "execa";
|
|
|
|
console.log("What demo do you wish to run? (Enter a number)");
|
|
|
|
const schema = {
|
|
properties: {
|
|
number: {
|
|
pattern: /^[0-9]+$/,
|
|
message: "Please enter a number.",
|
|
required: true,
|
|
},
|
|
},
|
|
};
|
|
|
|
prompt.start();
|
|
|
|
prompt.get(schema as any, async (_, result) => {
|
|
const demoNumber = result.number as string;
|
|
const files = fs.readdirSync("./demo").filter((fn) => fn.startsWith(demoNumber));
|
|
|
|
if (files.length === 0) {
|
|
console.error(`demo number ${demoNumber} does not exist`);
|
|
return;
|
|
}
|
|
|
|
const filePath = `./demo/${files[0]}`;
|
|
|
|
console.log(`Running demo ${demoNumber}: ${files[0]}`);
|
|
const { stdout } = await $`npm run ts-node -- ${filePath}`;
|
|
console.log(stdout);
|
|
|
|
// if (shelljs.exec(`npm run ts-node -- ${filePath}`).code === 0) {
|
|
// console.log("Document created successfully");
|
|
// } else {
|
|
// console.error("Something went wrong with the demo");
|
|
// }
|
|
});
|
|
|
|
exports = {};
|