@nlabs/lex
Version:
39 lines (38 loc) • 4.29 kB
JavaScript
import { existsSync, lstatSync } from "fs";
import { copyFileSync, copyFolderRecursiveSync } from "../../utils/app.js";
import { log } from "../../utils/log.js";
const copy = (from, to, cmd, callback = () => ({})) => {
const { cliName = "Lex", quiet } = cmd;
log(`${cliName} copying "${to}"...`, "info", quiet);
if (!existsSync(from)) {
log(`
${cliName} Error: Path not found, "${from}"...`, "error", quiet);
callback(1);
return Promise.resolve(1);
}
if (lstatSync(from).isDirectory()) {
try {
copyFolderRecursiveSync(from, to);
} catch (error) {
log(`
${cliName} Error: Cannot copy "${from}". ${error.message}`, "error", quiet);
callback(1);
return Promise.resolve(1);
}
} else {
try {
copyFileSync(from, to);
} catch (error) {
log(`
${cliName} Error: Cannot copy "${from}" ${error.message}`, "error", quiet);
callback(1);
return Promise.resolve(1);
}
}
callback(0);
return Promise.resolve(0);
};
export {
copy
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2NvcHkvY29weS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7ZXhpc3RzU3luYywgbHN0YXRTeW5jfSBmcm9tICdmcyc7XG5cbmltcG9ydCB7Y29weUZpbGVTeW5jLCBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luY30gZnJvbSAnLi4vLi4vdXRpbHMvYXBwLmpzJztcbmltcG9ydCB7bG9nfSBmcm9tICcuLi8uLi91dGlscy9sb2cuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvcHlPcHRpb25zIHtcbiAgcmVhZG9ubHkgY2xpTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBDb3B5Q2FsbGJhY2sgPSAoc3RhdHVzOiBudW1iZXIpID0+IHZvaWQ7XG5cbmV4cG9ydCBjb25zdCBjb3B5ID0gKFxuICBmcm9tOiBzdHJpbmcsXG4gIHRvOiBzdHJpbmcsXG4gIGNtZDogQ29weU9wdGlvbnMsXG4gIGNhbGxiYWNrOiBDb3B5Q2FsbGJhY2sgPSAoKSA9PiAoe30pXG4pOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBxdWlldH0gPSBjbWQ7XG5cbiAgLy8gRGlzcGxheSBtZXNzYWdlXG4gIGxvZyhgJHtjbGlOYW1lfSBjb3B5aW5nIFwiJHt0b31cIi4uLmAsICdpbmZvJywgcXVpZXQpO1xuXG4gIGlmKCFleGlzdHNTeW5jKGZyb20pKSB7XG4gICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBQYXRoIG5vdCBmb3VuZCwgXCIke2Zyb219XCIuLi5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgY2FsbGJhY2soMSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgxKTtcbiAgfVxuXG4gIGlmKGxzdGF0U3luYyhmcm9tKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENvcHkgZGlyZWN0b3J5XG4gICAgICBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyhmcm9tLCB0byk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogQ2Fubm90IGNvcHkgXCIke2Zyb219XCIuICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICBjYWxsYmFjaygxKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoMSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICAvLyBDb3B5IGZpbGVcbiAgICAgIGNvcHlGaWxlU3luYyhmcm9tLCB0byk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogQ2Fubm90IGNvcHkgXCIke2Zyb219XCIgJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgxKTtcbiAgICB9XG4gIH1cblxuICBjYWxsYmFjaygwKTtcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgwKTtcbn07Il0sCiAgIm1hcHBpbmdzIjogIkFBSUEsU0FBUSxZQUFZLGlCQUFnQjtBQUVwQyxTQUFRLGNBQWMsK0JBQThCO0FBQ3BELFNBQVEsV0FBVTtBQVNYLE1BQU0sT0FBTyxDQUNsQixNQUNBLElBQ0EsS0FDQSxXQUF5QixPQUFPLENBQUMsT0FDYjtBQUNwQixRQUFNLEVBQUMsVUFBVSxPQUFPLE1BQUssSUFBSTtBQUdqQyxNQUFJLEdBQUcsT0FBTyxhQUFhLEVBQUUsUUFBUSxRQUFRLEtBQUs7QUFFbEQsTUFBRyxDQUFDLFdBQVcsSUFBSSxHQUFHO0FBQ3BCLFFBQUk7QUFBQSxFQUFLLE9BQU8sNEJBQTRCLElBQUksUUFBUSxTQUFTLEtBQUs7QUFDdEUsYUFBUyxDQUFDO0FBQ1YsV0FBTyxRQUFRLFFBQVEsQ0FBQztBQUFBLEVBQzFCO0FBRUEsTUFBRyxVQUFVLElBQUksRUFBRSxZQUFZLEdBQUc7QUFDaEMsUUFBSTtBQUVGLDhCQUF3QixNQUFNLEVBQUU7QUFBQSxJQUNsQyxTQUFTLE9BQU87QUFDZCxVQUFJO0FBQUEsRUFBSyxPQUFPLHdCQUF3QixJQUFJLE1BQU0sTUFBTSxPQUFPLElBQUksU0FBUyxLQUFLO0FBQ2pGLGVBQVMsQ0FBQztBQUNWLGFBQU8sUUFBUSxRQUFRLENBQUM7QUFBQSxJQUMxQjtBQUFBLEVBQ0YsT0FBTztBQUNMLFFBQUk7QUFFRixtQkFBYSxNQUFNLEVBQUU7QUFBQSxJQUN2QixTQUFTLE9BQU87QUFDZCxVQUFJO0FBQUEsRUFBSyxPQUFPLHdCQUF3QixJQUFJLEtBQUssTUFBTSxPQUFPLElBQUksU0FBUyxLQUFLO0FBQ2hGLGVBQVMsQ0FBQztBQUNWLGFBQU8sUUFBUSxRQUFRLENBQUM7QUFBQSxJQUMxQjtBQUFBLEVBQ0Y7QUFFQSxXQUFTLENBQUM7QUFDVixTQUFPLFFBQVEsUUFBUSxDQUFDO0FBQzFCOyIsCiAgIm5hbWVzIjogW10KfQo=