@nlabs/lex
Version:
39 lines (38 loc) • 5.04 kB
JavaScript
/**
* 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