hdw2
Version:
鸿蒙前端hdc调试工具
71 lines (65 loc) • 2.76 kB
JavaScript
/*
* @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;