import { spawn } from "child_process"; import watchFiles from "./watch/files"; import watchFolders from "./watch/folders"; const confFileProvidedJSON = process.argv[process.argv.length - 1]; try { const configFileObject = JSON.parse(confFileProvidedJSON); console.log(`Running '${configFileObject.title}' ...`); if ( Array.isArray(configFileObject.files) && Array.isArray(configFileObject.folders) ) { throw new Error("Choose wither `files` or `folders`. Not both"); } const files = configFileObject?.files; const firstFile = files?.[0]; const folders = configFileObject?.folders; const firstFolder = folders?.[0]; const options = configFileObject.options; if (firstFile && files?.[0]) { watchFiles({ files, options }); } else if (firstFolder && folders?.[0]) { watchFolders({ folders, options }); } } catch (error) { console.log(error); process.exit(); } process.on("exit", (code) => { if (code == 1) { const args = process.argv; const cmd = args.shift(); if (cmd) { spawn(cmd, args, { stdio: "inherit", }); } } else { process.exit(0); } });