import Npm from './NpmManager' import Installer from './Installer' import Path from 'path' class Cli{ async static install (/* object */ options){ core.VW.Console.writeLine("Iniciando proceso de instalación") var files=0, yet, npm, lasti=0, i npm= Npm.load( (ev)=>{ if(ev.firsttime){ vw.log("Preparando npm para el primer uso ...") vw.log("") } else{ if(!yet){ vw.info("Descomprimiendo npm") yet=true } files++ i= ev.percent|0 if(i>=lasti+10){ lasti=i vw.warning("Procesado: ", files.toString().padLeft(5,' '), " archivos, ", ev.percent.toFixed(4), "%") } } }) var names= options.name if(!(names instanceof Array)) names=[names] if(names.length==0) names=[undefined] //vw.warning(names) for(var name of names){ vw.log("") vw.log(`Instalando ${name||""}`) var result= await Npm.install(options, name) var installed=result.installed[result.installed.length-1] if(name=== undefined && !installed) installed={} if(installed){ if(name===undefined){ installed.path= process.cwd() // Directorio actual ... try{ name= require(Path.join(installed.path, "package.json")).name }catch(e){} } await Installer.getInstaller().install(installed.path, options) vw.info(`Instalado ${name||""} correctamente`) } } } } export default Cli