UNPKG

@nlabs/lex

Version:
39 lines (38 loc) 5.04 kB
/** * Copyright (c) 2018-Present, Nitrogen Labs, Inc. * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. */ import { existsSync, lstatSync } from 'fs'; import { copyFileSync, copyFolderRecursiveSync } from '../../utils/app.js'; import { log } from '../../utils/log.js'; export const copy = (from, to, cmd, callback = ()=>({}))=>{ const { cliName = 'Lex', quiet } = cmd; // Display message log(`${cliName} copying "${to}"...`, 'info', quiet); if (!existsSync(from)) { log(`\n${cliName} Error: Path not found, "${from}"...`, 'error', quiet); callback(1); return Promise.resolve(1); } if (lstatSync(from).isDirectory()) { try { // Copy directory copyFolderRecursiveSync(from, to); } catch (error) { log(`\n${cliName} Error: Cannot copy "${from}". ${error.message}`, 'error', quiet); callback(1); return Promise.resolve(1); } } else { try { // Copy file copyFileSync(from, to); } catch (error) { log(`\n${cliName} Error: Cannot copy "${from}" ${error.message}`, 'error', quiet); callback(1); return Promise.resolve(1); } } callback(0); return Promise.resolve(0); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9jb3B5L2NvcHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7ZXhpc3RzU3luYywgbHN0YXRTeW5jfSBmcm9tICdmcyc7XG5cbmltcG9ydCB7Y29weUZpbGVTeW5jLCBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luY30gZnJvbSAnLi4vLi4vdXRpbHMvYXBwLmpzJztcbmltcG9ydCB7bG9nfSBmcm9tICcuLi8uLi91dGlscy9sb2cuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvcHlPcHRpb25zIHtcbiAgcmVhZG9ubHkgY2xpTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBDb3B5Q2FsbGJhY2sgPSAoc3RhdHVzOiBudW1iZXIpPT4gdm9pZDtcblxuZXhwb3J0IGNvbnN0IGNvcHkgPSAoXG4gIGZyb206IHN0cmluZyxcbiAgdG86IHN0cmluZyxcbiAgY21kOiBDb3B5T3B0aW9ucyxcbiAgY2FsbGJhY2s6IENvcHlDYWxsYmFjayA9ICgpID0+ICh7fSlcbik6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIHF1aWV0fSA9IGNtZDtcblxuICAvLyBEaXNwbGF5IG1lc3NhZ2VcbiAgbG9nKGAke2NsaU5hbWV9IGNvcHlpbmcgXCIke3RvfVwiLi4uYCwgJ2luZm8nLCBxdWlldCk7XG5cbiAgaWYoIWV4aXN0c1N5bmMoZnJvbSkpIHtcbiAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IFBhdGggbm90IGZvdW5kLCBcIiR7ZnJvbX1cIi4uLmAsICdlcnJvcicsIHF1aWV0KTtcbiAgICBjYWxsYmFjaygxKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKDEpO1xuICB9XG5cbiAgaWYobHN0YXRTeW5jKGZyb20pLmlzRGlyZWN0b3J5KCkpIHtcbiAgICB0cnkge1xuICAgICAgLy8gQ29weSBkaXJlY3RvcnlcbiAgICAgIGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jKGZyb20sIHRvKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IENhbm5vdCBjb3B5IFwiJHtmcm9tfVwiLiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgY2FsbGJhY2soMSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKDEpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgLy8gQ29weSBmaWxlXG4gICAgICBjb3B5RmlsZVN5bmMoZnJvbSwgdG8pO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogQ2Fubm90IGNvcHkgXCIke2Zyb219XCIgJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgxKTtcbiAgICB9XG4gIH1cblxuICBjYWxsYmFjaygwKTtcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgwKTtcbn07Il0sIm5hbWVzIjpbImV4aXN0c1N5bmMiLCJsc3RhdFN5bmMiLCJjb3B5RmlsZVN5bmMiLCJjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyIsImxvZyIsImNvcHkiLCJmcm9tIiwidG8iLCJjbWQiLCJjYWxsYmFjayIsImNsaU5hbWUiLCJxdWlldCIsIlByb21pc2UiLCJyZXNvbHZlIiwiaXNEaXJlY3RvcnkiLCJlcnJvciIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLFVBQVUsRUFBRUMsU0FBUyxRQUFPLEtBQUs7QUFFekMsU0FBUUMsWUFBWSxFQUFFQyx1QkFBdUIsUUFBTyxxQkFBcUI7QUFDekUsU0FBUUMsR0FBRyxRQUFPLHFCQUFxQjtBQVN2QyxPQUFPLE1BQU1DLE9BQU8sQ0FDbEJDLE1BQ0FDLElBQ0FDLEtBQ0FDLFdBQXlCLElBQU8sQ0FBQSxDQUFDLENBQUEsQ0FBRTtJQUVuQyxNQUFNLEVBQUNDLFVBQVUsS0FBSyxFQUFFQyxLQUFLLEVBQUMsR0FBR0g7SUFFakMsa0JBQWtCO0lBQ2xCSixJQUFJLEdBQUdNLFFBQVEsVUFBVSxFQUFFSCxHQUFHLElBQUksQ0FBQyxFQUFFLFFBQVFJO0lBRTdDLElBQUcsQ0FBQ1gsV0FBV00sT0FBTztRQUNwQkYsSUFBSSxDQUFDLEVBQUUsRUFBRU0sUUFBUSx5QkFBeUIsRUFBRUosS0FBSyxJQUFJLENBQUMsRUFBRSxTQUFTSztRQUNqRUYsU0FBUztRQUNULE9BQU9HLFFBQVFDLE9BQU8sQ0FBQztJQUN6QjtJQUVBLElBQUdaLFVBQVVLLE1BQU1RLFdBQVcsSUFBSTtRQUNoQyxJQUFJO1lBQ0YsaUJBQWlCO1lBQ2pCWCx3QkFBd0JHLE1BQU1DO1FBQ2hDLEVBQUUsT0FBTVEsT0FBTztZQUNiWCxJQUFJLENBQUMsRUFBRSxFQUFFTSxRQUFRLHFCQUFxQixFQUFFSixLQUFLLEdBQUcsRUFBRVMsTUFBTUMsT0FBTyxFQUFFLEVBQUUsU0FBU0w7WUFDNUVGLFNBQVM7WUFDVCxPQUFPRyxRQUFRQyxPQUFPLENBQUM7UUFDekI7SUFDRixPQUFPO1FBQ0wsSUFBSTtZQUNGLFlBQVk7WUFDWlgsYUFBYUksTUFBTUM7UUFDckIsRUFBRSxPQUFNUSxPQUFPO1lBQ2JYLElBQUksQ0FBQyxFQUFFLEVBQUVNLFFBQVEscUJBQXFCLEVBQUVKLEtBQUssRUFBRSxFQUFFUyxNQUFNQyxPQUFPLEVBQUUsRUFBRSxTQUFTTDtZQUMzRUYsU0FBUztZQUNULE9BQU9HLFFBQVFDLE9BQU8sQ0FBQztRQUN6QjtJQUNGO0lBRUFKLFNBQVM7SUFDVCxPQUFPRyxRQUFRQyxPQUFPLENBQUM7QUFDekIsRUFBRSJ9