mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-19 12:09:15 +00:00
cli update
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
const { red } = require('kleur')
|
||||
const spawn = require('cross-spawn')
|
||||
const { detect } = require('detect-package-manager')
|
||||
const PKG_OPTION = {
|
||||
npm: 'install',
|
||||
yarn: 'add',
|
||||
pnpm: 'add'
|
||||
}
|
||||
|
||||
const getPkgManage = async () => {
|
||||
const pkg = await detect()
|
||||
return pkg
|
||||
}
|
||||
|
||||
const installDeps = (pkgManager, package) => {
|
||||
const errorMessage = `Ocurrio un error instalando ${package}`
|
||||
let childProcess = []
|
||||
|
||||
const installSingle = (pkgInstall) => () => {
|
||||
new Promise((resolve, reject) => {
|
||||
try {
|
||||
childProcess = spawn(pkgManager, [PKG_OPTION[pkgManager], pkgInstall], {
|
||||
stdio: 'inherit'
|
||||
})
|
||||
|
||||
childProcess.on('error', (e) => {
|
||||
console.error(e)
|
||||
console.error(
|
||||
red(errorMessage)
|
||||
)
|
||||
resolve()
|
||||
})
|
||||
|
||||
childProcess.on('close', (code) => {
|
||||
if (code === 0) {
|
||||
resolve()
|
||||
} else {
|
||||
console.error(code)
|
||||
console.error(
|
||||
red(errorMessage)
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
resolve()
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
console.error(
|
||||
red(errorMessage)
|
||||
)
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
if (typeof package === 'string') {
|
||||
childProcess.push(installSingle(package))
|
||||
} else {
|
||||
for (const pkg of package) {
|
||||
childProcess.push(installSingle(pkg))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const runInstall = () => {
|
||||
return Promise.all(childProcess.map((i) => i()))
|
||||
}
|
||||
return { runInstall }
|
||||
|
||||
}
|
||||
|
||||
module.exports = { getPkgManage, installDeps }
|
||||
Reference in New Issue
Block a user