mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-09 06:54:11 +08:00
85 lines
1.8 KiB
JavaScript
85 lines
1.8 KiB
JavaScript
const os = require("os");
|
|
|
|
// 获取系统架构
|
|
function arch() {
|
|
return os.arch();
|
|
}
|
|
|
|
// 获取CPU信息
|
|
function cpus(format = "full") {
|
|
const cpuInfo = os.cpus();
|
|
if (format === "simple") {
|
|
return cpuInfo.map(({ model, speed }) => ({ model, speed }));
|
|
}
|
|
return cpuInfo;
|
|
}
|
|
|
|
// 获取内存信息
|
|
function memory(type = "totalmem") {
|
|
switch (type) {
|
|
case "totalmem":
|
|
return os.totalmem();
|
|
case "freemem":
|
|
return os.freemem();
|
|
default:
|
|
throw new Error("不支持的内存信息类型");
|
|
}
|
|
}
|
|
|
|
// 获取网络信息
|
|
function network(type = "hostname", internal = false) {
|
|
switch (type) {
|
|
case "hostname":
|
|
return os.hostname();
|
|
case "networkInterfaces": {
|
|
const interfaces = os.networkInterfaces();
|
|
if (!internal) {
|
|
// 过滤掉内部接口
|
|
Object.keys(interfaces).forEach((key) => {
|
|
interfaces[key] = interfaces[key].filter((iface) => !iface.internal);
|
|
if (interfaces[key].length === 0) {
|
|
delete interfaces[key];
|
|
}
|
|
});
|
|
}
|
|
return interfaces;
|
|
}
|
|
default:
|
|
throw new Error("不支持的网络信息类型");
|
|
}
|
|
}
|
|
|
|
// 获取平台信息
|
|
function platform(type = "platform") {
|
|
switch (type) {
|
|
case "platform":
|
|
return os.platform();
|
|
case "type":
|
|
return os.type();
|
|
case "release":
|
|
return os.release();
|
|
case "arch":
|
|
return os.arch();
|
|
case "endianness":
|
|
return os.endianness();
|
|
case "tmpdir":
|
|
return os.tmpdir();
|
|
case "homedir":
|
|
return os.homedir();
|
|
case "uptime":
|
|
return os.uptime();
|
|
case "userInfo":
|
|
return os.userInfo();
|
|
default:
|
|
throw new Error("不支持的平台信息类型");
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
arch,
|
|
cpus,
|
|
memory,
|
|
network,
|
|
platform,
|
|
};
|