react-h2p-puppeteer
Version:
just the puppeteer package used in react-h2p
73 lines (60 loc) • 2.43 kB
JavaScript
;
const program = require('commander');
const colors = require('colors');
const fs = require("fs");
const path = require("path");
const cmd = require('node-cmd');
var easyjson = require('easyjson');
let maker = () => {
console.log("\n"+colors.yellow("--- preparing ---\n"));
easyjson.path(path.resolve(__dirname, "..", "..", "package.json"))
.add("dependencies[puppeteer]", "^1.7.0");
fs.readFile(path.resolve(__dirname, "..", "..", "package.json"), (err, data) => {
if(err){
console.log(colors.red(err)+"\n"+"If you think this is a problem in react-h2p-puppeteer module, contact us:\nmailto:kay.alireza@gmail.com\n");
}
let d = data.toString().split("\n");
let index_tochange = -1;
d = d.filter((el, i)=>{
if(/^"react-h2p-puppeteer"/.test(el.trim())){
if((d[i+1]).toString().trim().replace("\s+", "")===("},") && i-1>=0 && !/"devDependencies\s*:\s*\{"/.test(d[i-1]) && !/"dependencies"\s*:\s*\{/.test(d[i-1]) ){
index_tochange = i-1;
}
return "";
}
return el;
});
if(index_tochange != -1){
d[index_tochange] = (d[index_tochange]).toString().replace(/(.*)\,$\s*/, "$1");
}
d = d.join("\n");
if (fs.existsSync(path.resolve(__dirname, "..", "..", "package.json"))) {
fs.writeFile("package.json", d);
}
console.log(colors.yellow("\n creating puppeteer module and deleting react-h2p-puppeteer\n"));
cmd.get(
'cd '+path.resolve(__dirname)+' && cp -rf ./src/* ../ && cp -rf ./src/.bin ../ && cd .. && rm -rf ./react-h2p-puppeteer && rm -rf ./react-h2p-puppeteer-cli*',
function(err, data, stderr){
if(err){
throw err;
}
else{
console.log(colors.green("process was successfully done\n\n"));
}
}
);
});
}
let make_red = (txt) => {
return colors.red(txt); //display the help text in red on the console
}
program
.version('1.0.0')
.command('make')
.description('make things ready to use puppeteer')
.action(maker);
if (!process.argv.slice(2).length) {
program.outputHelp(make_red);
}
program.parse(process.argv); // end with parse to parse through the input