pubo-node 1.0.166 → 1.0.167

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,3 +11,4 @@ export declare const getAudioCards: (filter?: string) => Promise<{
11
11
  text: string;
12
12
  index: string;
13
13
  }[]>;
14
+ export declare const getDiskUsage: () => Promise<unknown>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAudioCards = exports.heartbeat = exports.getProcessTree = void 0;
3
+ exports.getDiskUsage = exports.getAudioCards = exports.heartbeat = exports.getProcessTree = void 0;
4
4
  exports.getProcessName = getProcessName;
5
5
  exports.getPidByPort = getPidByPort;
6
6
  exports.getProcessCpuUseByPid = getProcessCpuUseByPid;
@@ -23,7 +23,7 @@ function getProcessName(pid) {
23
23
  });
24
24
  });
25
25
  }
26
- // 根据端口号获取进程名称
26
+ // 根据端口号获取进程PID
27
27
  async function getPidByPort(port) {
28
28
  if (!port) {
29
29
  return '';
@@ -74,7 +74,7 @@ function getProcessCpuUseByPid(pid) {
74
74
  });
75
75
  });
76
76
  }
77
- // 获取进程 command 使用率
77
+ // 获取进程 command
78
78
  function getProcessCommandByPid(pid) {
79
79
  return new Promise((resolve) => {
80
80
  (0, child_process_1.exec)(`ps -p ${pid} -o command=`, (err, stdout) => {
@@ -152,6 +152,7 @@ const flatProcessTree = (tree, tmp) => {
152
152
  tree = null;
153
153
  tmp = null;
154
154
  };
155
+ // 杀死进程以及子进程
155
156
  async function SIGKILL(pid, signal = 2) {
156
157
  if (process.platform === 'win32') {
157
158
  return new Promise((resolve) => {
@@ -164,16 +165,17 @@ async function SIGKILL(pid, signal = 2) {
164
165
  flatProcessTree(tree, tmp);
165
166
  tmp.reverse();
166
167
  tree = null;
167
- let success = true;
168
+ const res = { success: true, error: null };
168
169
  for (const item of tmp) {
169
170
  try {
170
171
  await _SIGKILL(item, signal);
171
172
  }
172
173
  catch (err) {
173
- success = false;
174
+ res.error = err;
175
+ res.success = false;
174
176
  }
175
177
  }
176
- return success;
178
+ return res;
177
179
  }
178
180
  // 子进程心跳包
179
181
  const heartbeat = () => {
@@ -212,3 +214,29 @@ const getAudioCards = (filter = '') => {
212
214
  });
213
215
  };
214
216
  exports.getAudioCards = getAudioCards;
217
+ const dic = ['fileSystem', 'size', 'used', 'avail', 'use%', 'mountedOn'];
218
+ const parser = (str) => {
219
+ return str
220
+ .split('\n')
221
+ .filter((item) => item)
222
+ .map((item) => item.split(' ').filter((s) => !!s))
223
+ .map((item) => {
224
+ const res = {};
225
+ dic.forEach((key, i) => (res[key] = item[i]));
226
+ return res;
227
+ })
228
+ .map((item) => ({ ...item, total: parseFloat(item.size), percentage: parseFloat(item['use%']) }));
229
+ };
230
+ const getDiskUsage = async () => {
231
+ return new Promise((resolve) => {
232
+ (0, child_process_1.exec)('df -h | grep G', (err, stdout) => {
233
+ if (err) {
234
+ resolve([]);
235
+ }
236
+ else {
237
+ resolve(parser(stdout.toString()));
238
+ }
239
+ });
240
+ });
241
+ };
242
+ exports.getDiskUsage = getDiskUsage;
package/lib/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { JsonStorage } from './storage/json';
2
2
  export { FtpClient, FtpClientPool } from './ftp-client';
3
3
  export type { FtpConnectOptions, FtpFile } from './ftp-client';
4
4
  export { createRpcClient, GrpcList } from './grpc';
5
- export { SIGKILL, isProcessDied, getProcessName, getProcessTree, getProcessByPpid, getProcessCpuUseByPid, getProcessCommandByPid, getPidByPort, heartbeat, } from './child-process';
5
+ export { SIGKILL, isProcessDied, getProcessName, getProcessTree, getProcessByPpid, getProcessCpuUseByPid, getProcessCommandByPid, getPidByPort, heartbeat, getDiskUsage, } from './child-process';
6
6
  export { isPortAvailable } from './utils';
7
7
  export { getWifiName, getNetworks } from './utils/network';
8
8
  export { RosTopicManager, RosTopic } from './ros/topic';
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PuboFileSystem = exports.RosTopic = exports.RosTopicManager = exports.getNetworks = exports.getWifiName = exports.isPortAvailable = exports.heartbeat = exports.getPidByPort = exports.getProcessCommandByPid = exports.getProcessCpuUseByPid = exports.getProcessByPpid = exports.getProcessTree = exports.getProcessName = exports.isProcessDied = exports.SIGKILL = exports.GrpcList = exports.createRpcClient = exports.FtpClientPool = exports.FtpClient = exports.JsonStorage = void 0;
3
+ exports.PuboFileSystem = exports.RosTopic = exports.RosTopicManager = exports.getNetworks = exports.getWifiName = exports.isPortAvailable = exports.getDiskUsage = exports.heartbeat = exports.getPidByPort = exports.getProcessCommandByPid = exports.getProcessCpuUseByPid = exports.getProcessByPpid = exports.getProcessTree = exports.getProcessName = exports.isProcessDied = exports.SIGKILL = exports.GrpcList = exports.createRpcClient = exports.FtpClientPool = exports.FtpClient = exports.JsonStorage = void 0;
4
4
  var json_1 = require("./storage/json");
5
5
  Object.defineProperty(exports, "JsonStorage", { enumerable: true, get: function () { return json_1.JsonStorage; } });
6
6
  var ftp_client_1 = require("./ftp-client");
@@ -19,6 +19,7 @@ Object.defineProperty(exports, "getProcessCpuUseByPid", { enumerable: true, get:
19
19
  Object.defineProperty(exports, "getProcessCommandByPid", { enumerable: true, get: function () { return child_process_1.getProcessCommandByPid; } });
20
20
  Object.defineProperty(exports, "getPidByPort", { enumerable: true, get: function () { return child_process_1.getPidByPort; } });
21
21
  Object.defineProperty(exports, "heartbeat", { enumerable: true, get: function () { return child_process_1.heartbeat; } });
22
+ Object.defineProperty(exports, "getDiskUsage", { enumerable: true, get: function () { return child_process_1.getDiskUsage; } });
22
23
  var utils_1 = require("./utils");
23
24
  Object.defineProperty(exports, "isPortAvailable", { enumerable: true, get: function () { return utils_1.isPortAvailable; } });
24
25
  var network_1 = require("./utils/network");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pubo-node",
3
- "version": "1.0.166",
3
+ "version": "1.0.167",
4
4
  "main": "./lib/index.js",
5
5
  "types": "./lib/index.d.ts",
6
6
  "sideEffects": false,
@@ -18,10 +18,10 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@types/node": "^17.0.25",
21
- "pubo-utils": "^1.0.164",
21
+ "pubo-utils": "^1.0.167",
22
22
  "yaml": "^2.5.1"
23
23
  },
24
- "gitHead": "44bdcaeb2ec41a7a07a929a74082d8aa2cf53ad1",
24
+ "gitHead": "3e19f954e9f9cf7e8c358012818b9578007df8a0",
25
25
  "devDependencies": {
26
26
  "del": "^5.1.0",
27
27
  "eslint": "^8.42.0",