From 165b3cfbd3d56d766acd236b0037b523d7faaf83 Mon Sep 17 00:00:00 2001 From: Luis Blanco Date: Tue, 17 Sep 2019 11:17:57 +0300 Subject: [PATCH] Add cpbin script --- cpbin.js | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 cpbin.js diff --git a/cpbin.js b/cpbin.js new file mode 100644 index 0000000..8a45e30 --- /dev/null +++ b/cpbin.js @@ -0,0 +1,66 @@ +'use strict'; + +const fs = require('fs'); + +const { bin } = require('.'); + + +const copy = (src, dest) => new Promise( + (res, rej) => fs.copyFile(src, dest, err => (err ? rej(err) : res())) +); + + +const exists = name => new Promise( + res => fs.access( + name, + fs.constants.F_OK, + err => res(err ? false : true) + ) +); + + +const mkdir = async name => { + if (await exists(name)) { + return; + } + return new Promise( + (res, rej) => fs.mkdir(name, err => (err ? rej(err) : res())) + ); +}; + + +const rm = async name => { + if ( ! await exists(name) ) { + return; + } + await new Promise( + (res, rej) => fs.unlink(name, err => (err ? rej(err) : res())) + ); +}; + + +module.exports = async name => { + + const srcDir = process.cwd().replace(/\\/g, '/'); + + if ( ! await exists(`${srcDir}/build/Release/${name}.node`) ) { + console.error(`Error. File "${srcDir}/build/Release/${name}.node" not found.`); + } + + const binAbs = `${srcDir}/../${bin}`; + + if ( ! await exists(binAbs) ) { + await mkdir(binAbs); + } + + const destAbs = `${binAbs}/${name}.node`; + + if (await exists(destAbs)) { + await rm(destAbs); + } + + await copy(`${srcDir}/build/Release/${name}.node`, destAbs); + + console.log(`The binary "${name}.node" was copied to "${bin}".`); + +};