chore: improvement cli

This commit is contained in:
Leifer Mendez
2023-01-13 22:31:45 +01:00
parent 2f8d5a3fb3
commit d18efc88a9
3 changed files with 67 additions and 41 deletions

View File

@@ -2,50 +2,64 @@ const { red, yellow, green, bgCyan } = require('kleur')
const { exec } = require('node:child_process') const { exec } = require('node:child_process')
const checkNodeVersion = () => { const checkNodeVersion = () => {
console.log(bgCyan('🚀 Revisando tu Node.js')) return new Promise((resolve, reject) => {
const version = process.version console.log(bgCyan('🚀 Revisando tu Node.js'))
const majorVersion = parseInt(version.replace('v', '').split('.').shift()) const version = process.version
if (majorVersion < 16) { const majorVersion = parseInt(
console.error( version.replace('v', '').split('.').shift()
red(
`🔴 Se require Node.js 16 o superior. Actualmente esta ejecutando Node.js ${version}`
)
) )
process.exit(1) if (majorVersion < 16) {
} console.error(
console.log(green(`Node.js: ${version} compatible ✅`)) red(
console.log(``) `🔴 Se require Node.js 16 o superior. Actualmente esta ejecutando Node.js ${version}`
)
)
console.log(``)
reject('ERROR_NODE')
}
console.log(green(`Node.js: ${version} compatible ✅`))
console.log(``)
resolve()
})
} }
const checkOs = () => { const checkOs = () => {
console.log(bgCyan('🙂 Revisando tu sistema operativo')) return new Promise((resolve, reject) => {
const os = process.platform console.log(bgCyan('🙂 Revisando tu sistema operativo'))
if (!os.includes('win32')) { const os = process.platform
const messages = [ if (!os.includes('win32')) {
`El sistema operativo actual (${os}) posiblemente requiera`, const messages = [
`una configuración adicional referente al puppeteer`, `El sistema operativo actual (${os}) posiblemente requiera`,
``, `una configuración adicional referente al puppeteer`,
`Recuerda pasar por el WIKI`, ``,
`🔗 https://github.com/leifermendez/bot-whatsapp/wiki/Instalación`, `Recuerda pasar por el WIKI`,
``, `🔗 https://github.com/leifermendez/bot-whatsapp/wiki/Instalación`,
] ``,
]
console.log(yellow(messages.join(' \n'))) console.log(yellow(messages.join(' \n')))
} }
console.log(green(`OS: compatible ✅`)) console.log(green(`OS: compatible ✅`))
console.log(``) console.log(``)
resolve()
})
} }
const checkGit = () => { const checkGit = () => {
console.log(bgCyan('🤓 Revisando GIT')) return new Promise((resolve, reject) => {
exec('git --version', (error) => { console.log(bgCyan('🤓 Revisando GIT'))
if (error) { exec('git --version', (error) => {
console.error(red(`🔴 Se require instalar GIT`)) if (error) {
process.exit(1) console.error(red(`🔴 Se require instalar GIT`))
} console.log(``)
reject('ERROR_GIT')
} else {
console.log(green(`Git: Compatible ✅`))
console.log(``)
resolve()
}
})
}) })
console.log(green(`Git: Compatible ✅`))
console.log(``)
} }
module.exports = { checkNodeVersion, checkOs, checkGit } module.exports = { checkNodeVersion, checkOs, checkGit }

View File

@@ -1,6 +1,6 @@
const prompts = require('prompts') const prompts = require('prompts')
const { join } = require('path') const { join } = require('path')
const { yellow, red, cyan, bgMagenta } = require('kleur') const { yellow, red, cyan, bgMagenta, bgRed } = require('kleur')
const { existsSync } = require('fs') const { existsSync } = require('fs')
const { copyBaseApp } = require('../create-app') const { copyBaseApp } = require('../create-app')
const { checkNodeVersion, checkOs, checkGit } = require('../check') const { checkNodeVersion, checkOs, checkGit } = require('../check')
@@ -21,6 +21,22 @@ const bannerDone = () => {
} }
const startInteractive = async () => { const startInteractive = async () => {
try {
console.clear()
await checkNodeVersion()
checkOs()
await checkGit()
console.clear()
await nextSteps()
} catch (e) {
console.error(bgRed(`Ups! 🙄 algo no va bien.`))
console.error(
bgRed(`Revisa los requerimientos minimos en la documentacion`)
)
}
}
const nextSteps = async () => {
const questions = [ const questions = [
{ {
type: 'text', type: 'text',
@@ -58,10 +74,6 @@ const startInteractive = async () => {
}, },
] ]
console.clear()
checkOs()
checkNodeVersion()
checkGit()
const onCancel = () => { const onCancel = () => {
console.log('¡Proceso cancelado!') console.log('¡Proceso cancelado!')
return true return true

View File

@@ -1,6 +1,6 @@
{ {
"name": "create-bot-whatsapp", "name": "create-bot-whatsapp",
"version": "0.0.78-alpha.0", "version": "0.0.92-alpha.0",
"description": "", "description": "",
"main": "./lib/bundle.create-bot-whatsapp.cjs", "main": "./lib/bundle.create-bot-whatsapp.cjs",
"files": [ "files": [