@xiaoguomeiyitian/core 1.0.0 → 1.0.3

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.
package/dist/Cli.js CHANGED
@@ -1,7 +1,89 @@
1
1
  #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const path_1 = __importDefault(require("path"));
8
+ const promises_1 = __importDefault(require("fs/promises"));
2
9
  // 获取当前工作目录
3
10
  const cwd = process.cwd();
4
- // 获取当前脚本所在目录
5
- const scriptDir = __dirname;
6
- console.log(`Current working directory: ${cwd}`);
7
- console.log(`Script directory: ${scriptDir}`);
11
+ const cmd = process.argv[2];
12
+ if (cmd == "copy") {
13
+ const sourceDir = path_1.default.resolve(cwd, process.argv[3]); // 源目录
14
+ const destDir = path_1.default.resolve(cwd, process.argv[4]); // 目标目录
15
+ copyDirectory(sourceDir, destDir);
16
+ }
17
+ if (cmd == "del") {
18
+ const extname = process.argv[4]; // 后缀名
19
+ const targetDir = path_1.default.resolve(cwd, process.argv[3]); // 目标目录
20
+ deleteMapFiles(targetDir, extname);
21
+ }
22
+ if (cmd == "autoDeBug") {
23
+ process.argv = [process.argv[0], process.argv[1], process.argv[2], "-autoDeBug", "1", "-serverType", process.argv[3], "-rpcPort", process.argv[4]];
24
+ const { Global } = require("./Global_" + require('os').platform());
25
+ new Global();
26
+ }
27
+ /** 拷贝文件 */
28
+ async function copyDirectory(sourceDir, destDir) {
29
+ try {
30
+ await promises_1.default.access(sourceDir);
31
+ }
32
+ catch (err) {
33
+ return;
34
+ }
35
+ ;
36
+ // 如果是文件,直接复制文件
37
+ if (!(await promises_1.default.stat(sourceDir)).isDirectory())
38
+ return await promises_1.default.copyFile(sourceDir, destDir);
39
+ // 创建目标目录,如果不存在
40
+ await promises_1.default.mkdir(destDir, { recursive: true });
41
+ // 读取源目录中的文件和文件夹
42
+ const entries = await promises_1.default.readdir(sourceDir, { withFileTypes: true });
43
+ // 存储所有复制操作的 Promise
44
+ const copyPromises = entries.map(async (entry) => {
45
+ const sourcePath = path_1.default.join(sourceDir, entry.name);
46
+ const destPath = path_1.default.join(destDir, entry.name);
47
+ if (entry.isDirectory()) {
48
+ // 递归拷贝子文件夹
49
+ await copyDirectory(sourcePath, destPath);
50
+ }
51
+ else {
52
+ // 拷贝文件,覆盖目标目录中的现有文件
53
+ await promises_1.default.copyFile(sourcePath, destPath);
54
+ }
55
+ });
56
+ // 等待所有拷贝操作完成
57
+ await Promise.all(copyPromises);
58
+ }
59
+ /** 删除文件或者目录 */
60
+ async function deleteMapFiles(dir, extname) {
61
+ try {
62
+ await promises_1.default.access(dir);
63
+ }
64
+ catch (err) {
65
+ return;
66
+ }
67
+ // 如果是文件,直接删除
68
+ if ((await promises_1.default.stat(dir)).isFile())
69
+ return await promises_1.default.unlink(dir);
70
+ // 如果是目录,读取目录中的所有文件和文件夹
71
+ const entries = await promises_1.default.readdir(dir, { withFileTypes: true });
72
+ // 先删除所有文件
73
+ const deletePromises = [];
74
+ for (let entry of entries) {
75
+ const fullPath = path_1.default.join(dir, entry.name);
76
+ if (entry.isDirectory()) {
77
+ // 如果是子目录,递归处理子目录
78
+ await deleteMapFiles(fullPath, extname);
79
+ }
80
+ else if (entry.isFile() && (path_1.default.extname(fullPath) === extname || !extname)) {
81
+ deletePromises.push(promises_1.default.unlink(fullPath));
82
+ }
83
+ }
84
+ // 等待文件删除操作完成
85
+ await Promise.all(deletePromises);
86
+ // 删除当前目录,如果为空
87
+ if ((await promises_1.default.readdir(dir)).length === 0)
88
+ await promises_1.default.rmdir(dir);
89
+ }
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiaoguomeiyitian/core",
3
- "version": "1.0.0",
3
+ "version": "1.0.3",
4
4
  "main": "dist/index.js",
5
5
  "types": "types/index.d.ts",
6
6
  "bin": {