UNPKG

hdw2

Version:

鸿蒙前端hdc调试工具

71 lines (65 loc) 2.76 kB
/* * @Author: tankunpeng * @Date: 2024-06-26 19:47:35 * @LastEditTime: 2025-08-06 09:22:21 * @LastEditors: tankunpeng * @Description: 检查调试环境 * Come on, worker! */ const shell = require('shelljs'); const chalk = require('chalk'); const { hasHdc, getHdc, printTitle, shellLog } = require('./util'); function check(options = {}, command = {}, logOps = {}) { const hdc = getHdc(); printTitle('=====>调试环境检查<=====', logOps, { beforeLine: true, afterLine: true }); shellLog(chalk.cyan('[1/2]检查hdc命令是否存在...'), logOps); const hasHdcResult = hasHdc(); if (!hasHdcResult) { shellLog(chalk.red('[1/2]不通过'), logOps); shellLog(`${chalk.cyan('环境检查结果: ')}${chalk.red('失败')}`, logOps, { hideLog: false }); shellLog( `${chalk.cyan('处理建议: ')}${chalk.yellow( `未找到hdc命令,且内部集成hdc命令行工具不可用,请尝试下载hdc命令行工具,并配置环境变量\n下载地址:${chalk.green( 'https://developer.huawei.com/consumer/cn/download/' )}` )}`, logOps, { hideLog: false } ); shell.exit(1); } shellLog(chalk.green('[1/2]通过'), logOps); shellLog(chalk.cyan('[2/2]检查鸿蒙设备连接状态...'), logOps); const deviceListCmd = `${hdc} list targets`; const deviceListExec = shell.exec(deviceListCmd, { silent: true }); if (deviceListExec.code !== 0) { shellLog(chalk.red('[2/2]不通过'), logOps); shellLog(`${chalk.cyan('环境检查结果: ')}${chalk.red('失败')}`, logOps, { hideLog: false }); shellLog( `${chalk.cyan('处理建议: ')}${chalk.yellow( `查询设备列表命令执行失败,请手动执行命令尝试\n命令:${chalk.green(deviceListCmd)}` )}`, logOps, { hideLog: false } ); shell.exit(1); } const deviceListStdout = deviceListExec.stdout; if (deviceListStdout.includes('[Empty]')) { shellLog(chalk.red('[2/2]不通过'), logOps); shellLog(`${chalk.cyan('环境检查结果: ')}${chalk.red('失败')}`, logOps, { hideLog: false }); shellLog( `${chalk.cyan('处理建议: ')}${chalk.yellow('请确认设备已通过USB连接,开启开发者模式并打开USB调试开关\n')}`, logOps, { hideLog: false } ); shell.exit(1); } shellLog(chalk.green('[2/2]通过'), logOps); shellLog(`${chalk.cyan('环境检查结果: ')}${chalk.green('通过')}\n`, logOps); shellLog(`${chalk.cyan('\n设备列表: \n')}${chalk.green(deviceListStdout)}`, { hideLog: logOps.showDevices ? false : logOps.hideLog, }); shellLog(`${chalk.cyan('环境检查: ')}${chalk.green('通过')}\n`, logOps, { hideLog: !logOps.showProcessResult }); } exports.check = check;