mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-04 23:43:44 +08:00
feat: add color to log
This commit is contained in:
parent
591c1cb454
commit
d8c85007d4
@ -40,6 +40,7 @@
|
|||||||
"@types/json-schema": "^7.0.15",
|
"@types/json-schema": "^7.0.15",
|
||||||
"ahooks": "^3.8.0",
|
"ahooks": "^3.8.0",
|
||||||
"axios": "^1.7.2",
|
"axios": "^1.7.2",
|
||||||
|
"cli-color": "^2.0.4",
|
||||||
"dayjs": "1.11.5",
|
"dayjs": "1.11.5",
|
||||||
"foxact": "^0.2.35",
|
"foxact": "^0.2.35",
|
||||||
"i18next": "^23.11.5",
|
"i18next": "^23.11.5",
|
||||||
|
180
pnpm-lock.yaml
generated
180
pnpm-lock.yaml
generated
@ -73,6 +73,9 @@ importers:
|
|||||||
axios:
|
axios:
|
||||||
specifier: ^1.7.2
|
specifier: ^1.7.2
|
||||||
version: 1.7.2
|
version: 1.7.2
|
||||||
|
cli-color:
|
||||||
|
specifier: ^2.0.4
|
||||||
|
version: 2.0.4
|
||||||
dayjs:
|
dayjs:
|
||||||
specifier: 1.11.5
|
specifier: 1.11.5
|
||||||
version: 1.11.5
|
version: 1.11.5
|
||||||
@ -2624,6 +2627,13 @@ packages:
|
|||||||
}
|
}
|
||||||
engines: { node: ">=10" }
|
engines: { node: ">=10" }
|
||||||
|
|
||||||
|
cli-color@2.0.4:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==,
|
||||||
|
}
|
||||||
|
engines: { node: ">=0.10" }
|
||||||
|
|
||||||
client-only@0.0.1:
|
client-only@0.0.1:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
@ -2739,6 +2749,13 @@ packages:
|
|||||||
integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==,
|
integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
d@1.0.2:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==,
|
||||||
|
}
|
||||||
|
engines: { node: ">=0.12" }
|
||||||
|
|
||||||
data-uri-to-buffer@4.0.1:
|
data-uri-to-buffer@4.0.1:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
@ -2833,6 +2850,32 @@ packages:
|
|||||||
integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==,
|
integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
es5-ext@0.10.64:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==,
|
||||||
|
}
|
||||||
|
engines: { node: ">=0.10" }
|
||||||
|
|
||||||
|
es6-iterator@2.0.3:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==,
|
||||||
|
}
|
||||||
|
|
||||||
|
es6-symbol@3.1.4:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==,
|
||||||
|
}
|
||||||
|
engines: { node: ">=0.12" }
|
||||||
|
|
||||||
|
es6-weak-map@2.0.3:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==,
|
||||||
|
}
|
||||||
|
|
||||||
esbuild@0.21.5:
|
esbuild@0.21.5:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
@ -2862,6 +2905,13 @@ packages:
|
|||||||
}
|
}
|
||||||
engines: { node: ">=10" }
|
engines: { node: ">=10" }
|
||||||
|
|
||||||
|
esniff@2.0.1:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==,
|
||||||
|
}
|
||||||
|
engines: { node: ">=0.10" }
|
||||||
|
|
||||||
estree-util-is-identifier-name@3.0.0:
|
estree-util-is-identifier-name@3.0.0:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
@ -2881,6 +2931,12 @@ packages:
|
|||||||
}
|
}
|
||||||
engines: { node: ">=0.10.0" }
|
engines: { node: ">=0.10.0" }
|
||||||
|
|
||||||
|
event-emitter@0.3.5:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==,
|
||||||
|
}
|
||||||
|
|
||||||
execa@4.1.0:
|
execa@4.1.0:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
@ -2888,6 +2944,12 @@ packages:
|
|||||||
}
|
}
|
||||||
engines: { node: ">=10" }
|
engines: { node: ">=10" }
|
||||||
|
|
||||||
|
ext@1.7.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==,
|
||||||
|
}
|
||||||
|
|
||||||
extend@3.0.2:
|
extend@3.0.2:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
@ -3190,6 +3252,12 @@ packages:
|
|||||||
}
|
}
|
||||||
engines: { node: ">=0.10.0" }
|
engines: { node: ">=0.10.0" }
|
||||||
|
|
||||||
|
is-promise@2.2.2:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==,
|
||||||
|
}
|
||||||
|
|
||||||
is-stream@2.0.1:
|
is-stream@2.0.1:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
@ -3326,6 +3394,12 @@ packages:
|
|||||||
}
|
}
|
||||||
engines: { node: ">=10" }
|
engines: { node: ">=10" }
|
||||||
|
|
||||||
|
lru-queue@0.1.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==,
|
||||||
|
}
|
||||||
|
|
||||||
magic-string@0.30.10:
|
magic-string@0.30.10:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
@ -3380,6 +3454,13 @@ packages:
|
|||||||
integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==,
|
integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memoizee@0.4.17:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==,
|
||||||
|
}
|
||||||
|
engines: { node: ">=0.12" }
|
||||||
|
|
||||||
meow@13.2.0:
|
meow@13.2.0:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
@ -3644,6 +3725,12 @@ packages:
|
|||||||
engines: { node: ^18 || >=20 }
|
engines: { node: ^18 || >=20 }
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
next-tick@1.1.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==,
|
||||||
|
}
|
||||||
|
|
||||||
no-case@3.0.4:
|
no-case@3.0.4:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
@ -4278,6 +4365,13 @@ packages:
|
|||||||
engines: { node: ">=10" }
|
engines: { node: ">=10" }
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
timers-ext@0.1.8:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==,
|
||||||
|
}
|
||||||
|
engines: { node: ">=0.12" }
|
||||||
|
|
||||||
to-fast-properties@2.0.0:
|
to-fast-properties@2.0.0:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
@ -4323,6 +4417,12 @@ packages:
|
|||||||
}
|
}
|
||||||
engines: { node: ">=0.6.11 <=0.7.0 || >=0.7.3" }
|
engines: { node: ">=0.6.11 <=0.7.0 || >=0.7.3" }
|
||||||
|
|
||||||
|
type@2.7.3:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==,
|
||||||
|
}
|
||||||
|
|
||||||
types-pac@1.0.2:
|
types-pac@1.0.2:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
@ -6310,6 +6410,14 @@ snapshots:
|
|||||||
|
|
||||||
chownr@2.0.0: {}
|
chownr@2.0.0: {}
|
||||||
|
|
||||||
|
cli-color@2.0.4:
|
||||||
|
dependencies:
|
||||||
|
d: 1.0.2
|
||||||
|
es5-ext: 0.10.64
|
||||||
|
es6-iterator: 2.0.3
|
||||||
|
memoizee: 0.4.17
|
||||||
|
timers-ext: 0.1.8
|
||||||
|
|
||||||
client-only@0.0.1: {}
|
client-only@0.0.1: {}
|
||||||
|
|
||||||
clsx@2.1.1: {}
|
clsx@2.1.1: {}
|
||||||
@ -6369,6 +6477,11 @@ snapshots:
|
|||||||
|
|
||||||
csstype@3.1.3: {}
|
csstype@3.1.3: {}
|
||||||
|
|
||||||
|
d@1.0.2:
|
||||||
|
dependencies:
|
||||||
|
es5-ext: 0.10.64
|
||||||
|
type: 2.7.3
|
||||||
|
|
||||||
data-uri-to-buffer@4.0.1: {}
|
data-uri-to-buffer@4.0.1: {}
|
||||||
|
|
||||||
dayjs@1.11.5: {}
|
dayjs@1.11.5: {}
|
||||||
@ -6413,6 +6526,31 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-arrayish: 0.2.1
|
is-arrayish: 0.2.1
|
||||||
|
|
||||||
|
es5-ext@0.10.64:
|
||||||
|
dependencies:
|
||||||
|
es6-iterator: 2.0.3
|
||||||
|
es6-symbol: 3.1.4
|
||||||
|
esniff: 2.0.1
|
||||||
|
next-tick: 1.1.0
|
||||||
|
|
||||||
|
es6-iterator@2.0.3:
|
||||||
|
dependencies:
|
||||||
|
d: 1.0.2
|
||||||
|
es5-ext: 0.10.64
|
||||||
|
es6-symbol: 3.1.4
|
||||||
|
|
||||||
|
es6-symbol@3.1.4:
|
||||||
|
dependencies:
|
||||||
|
d: 1.0.2
|
||||||
|
ext: 1.7.0
|
||||||
|
|
||||||
|
es6-weak-map@2.0.3:
|
||||||
|
dependencies:
|
||||||
|
d: 1.0.2
|
||||||
|
es5-ext: 0.10.64
|
||||||
|
es6-iterator: 2.0.3
|
||||||
|
es6-symbol: 3.1.4
|
||||||
|
|
||||||
esbuild@0.21.5:
|
esbuild@0.21.5:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@esbuild/aix-ppc64": 0.21.5
|
"@esbuild/aix-ppc64": 0.21.5
|
||||||
@ -6445,12 +6583,24 @@ snapshots:
|
|||||||
|
|
||||||
escape-string-regexp@4.0.0: {}
|
escape-string-regexp@4.0.0: {}
|
||||||
|
|
||||||
|
esniff@2.0.1:
|
||||||
|
dependencies:
|
||||||
|
d: 1.0.2
|
||||||
|
es5-ext: 0.10.64
|
||||||
|
event-emitter: 0.3.5
|
||||||
|
type: 2.7.3
|
||||||
|
|
||||||
estree-util-is-identifier-name@3.0.0: {}
|
estree-util-is-identifier-name@3.0.0: {}
|
||||||
|
|
||||||
estree-walker@2.0.2: {}
|
estree-walker@2.0.2: {}
|
||||||
|
|
||||||
esutils@2.0.3: {}
|
esutils@2.0.3: {}
|
||||||
|
|
||||||
|
event-emitter@0.3.5:
|
||||||
|
dependencies:
|
||||||
|
d: 1.0.2
|
||||||
|
es5-ext: 0.10.64
|
||||||
|
|
||||||
execa@4.1.0:
|
execa@4.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
cross-spawn: 7.0.3
|
cross-spawn: 7.0.3
|
||||||
@ -6463,6 +6613,10 @@ snapshots:
|
|||||||
signal-exit: 3.0.7
|
signal-exit: 3.0.7
|
||||||
strip-final-newline: 2.0.0
|
strip-final-newline: 2.0.0
|
||||||
|
|
||||||
|
ext@1.7.0:
|
||||||
|
dependencies:
|
||||||
|
type: 2.7.3
|
||||||
|
|
||||||
extend@3.0.2: {}
|
extend@3.0.2: {}
|
||||||
|
|
||||||
fetch-blob@3.2.0:
|
fetch-blob@3.2.0:
|
||||||
@ -6622,6 +6776,8 @@ snapshots:
|
|||||||
|
|
||||||
is-plain-object@5.0.0: {}
|
is-plain-object@5.0.0: {}
|
||||||
|
|
||||||
|
is-promise@2.2.2: {}
|
||||||
|
|
||||||
is-stream@2.0.1: {}
|
is-stream@2.0.1: {}
|
||||||
|
|
||||||
isexe@2.0.0: {}
|
isexe@2.0.0: {}
|
||||||
@ -6676,6 +6832,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
yallist: 4.0.0
|
yallist: 4.0.0
|
||||||
|
|
||||||
|
lru-queue@0.1.0:
|
||||||
|
dependencies:
|
||||||
|
es5-ext: 0.10.64
|
||||||
|
|
||||||
magic-string@0.30.10:
|
magic-string@0.30.10:
|
||||||
dependencies:
|
dependencies:
|
||||||
"@jridgewell/sourcemap-codec": 1.4.15
|
"@jridgewell/sourcemap-codec": 1.4.15
|
||||||
@ -6769,6 +6929,17 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/mdast": 4.0.4
|
"@types/mdast": 4.0.4
|
||||||
|
|
||||||
|
memoizee@0.4.17:
|
||||||
|
dependencies:
|
||||||
|
d: 1.0.2
|
||||||
|
es5-ext: 0.10.64
|
||||||
|
es6-weak-map: 2.0.3
|
||||||
|
event-emitter: 0.3.5
|
||||||
|
is-promise: 2.2.2
|
||||||
|
lru-queue: 0.1.0
|
||||||
|
next-tick: 1.1.0
|
||||||
|
timers-ext: 0.1.8
|
||||||
|
|
||||||
meow@13.2.0: {}
|
meow@13.2.0: {}
|
||||||
|
|
||||||
merge-stream@2.0.0: {}
|
merge-stream@2.0.0: {}
|
||||||
@ -6971,6 +7142,8 @@ snapshots:
|
|||||||
|
|
||||||
nanoid@5.0.7: {}
|
nanoid@5.0.7: {}
|
||||||
|
|
||||||
|
next-tick@1.1.0: {}
|
||||||
|
|
||||||
no-case@3.0.4:
|
no-case@3.0.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
lower-case: 2.0.2
|
lower-case: 2.0.2
|
||||||
@ -7355,6 +7528,11 @@ snapshots:
|
|||||||
commander: 2.20.3
|
commander: 2.20.3
|
||||||
source-map-support: 0.5.21
|
source-map-support: 0.5.21
|
||||||
|
|
||||||
|
timers-ext@0.1.8:
|
||||||
|
dependencies:
|
||||||
|
es5-ext: 0.10.64
|
||||||
|
next-tick: 1.1.0
|
||||||
|
|
||||||
to-fast-properties@2.0.0: {}
|
to-fast-properties@2.0.0: {}
|
||||||
|
|
||||||
to-regex-range@5.0.1:
|
to-regex-range@5.0.1:
|
||||||
@ -7371,6 +7549,8 @@ snapshots:
|
|||||||
|
|
||||||
tunnel@0.0.6: {}
|
tunnel@0.0.6: {}
|
||||||
|
|
||||||
|
type@2.7.3: {}
|
||||||
|
|
||||||
types-pac@1.0.2: {}
|
types-pac@1.0.2: {}
|
||||||
|
|
||||||
typescript@5.5.3: {}
|
typescript@5.5.3: {}
|
||||||
|
@ -7,6 +7,7 @@ import AdmZip from "adm-zip";
|
|||||||
import fetch from "node-fetch";
|
import fetch from "node-fetch";
|
||||||
import proxyAgent from "https-proxy-agent";
|
import proxyAgent from "https-proxy-agent";
|
||||||
import { execSync } from "child_process";
|
import { execSync } from "child_process";
|
||||||
|
import { log_info, log_debug, log_error, log_success } from "./utils.mjs";
|
||||||
|
|
||||||
const cwd = process.cwd();
|
const cwd = process.cwd();
|
||||||
const TEMP_DIR = path.join(cwd, "node_modules/.verge");
|
const TEMP_DIR = path.join(cwd, "node_modules/.verge");
|
||||||
@ -92,9 +93,9 @@ async function getLatestAlphaVersion() {
|
|||||||
});
|
});
|
||||||
let v = await response.text();
|
let v = await response.text();
|
||||||
META_ALPHA_VERSION = v.trim(); // Trim to remove extra whitespaces
|
META_ALPHA_VERSION = v.trim(); // Trim to remove extra whitespaces
|
||||||
console.log(`Latest alpha version: ${META_ALPHA_VERSION}`);
|
log_info(`Latest alpha version: ${META_ALPHA_VERSION}`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error fetching latest alpha version:", error.message);
|
log_error("Error fetching latest alpha version:", error.message);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -139,9 +140,9 @@ async function getLatestReleaseVersion() {
|
|||||||
});
|
});
|
||||||
let v = await response.text();
|
let v = await response.text();
|
||||||
META_VERSION = v.trim(); // Trim to remove extra whitespaces
|
META_VERSION = v.trim(); // Trim to remove extra whitespaces
|
||||||
console.log(`Latest release version: ${META_VERSION}`);
|
log_info(`Latest release version: ${META_VERSION}`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error fetching latest release version:", error.message);
|
log_error("Error fetching latest release version:", error.message);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -222,11 +223,11 @@ async function resolveSidecar(binInfo) {
|
|||||||
if (zipFile.endsWith(".zip")) {
|
if (zipFile.endsWith(".zip")) {
|
||||||
const zip = new AdmZip(tempZip);
|
const zip = new AdmZip(tempZip);
|
||||||
zip.getEntries().forEach((entry) => {
|
zip.getEntries().forEach((entry) => {
|
||||||
console.log(`[DEBUG]: "${name}" entry name`, entry.entryName);
|
log_debug(`"${name}" entry name`, entry.entryName);
|
||||||
});
|
});
|
||||||
zip.extractAllTo(tempDir, true);
|
zip.extractAllTo(tempDir, true);
|
||||||
await fsp.rename(tempExe, sidecarPath);
|
await fsp.rename(tempExe, sidecarPath);
|
||||||
console.log(`[INFO]: "${name}" unzip finished`);
|
log_success(`unzip finished: "${name}"`);
|
||||||
} else if (zipFile.endsWith(".tgz")) {
|
} else if (zipFile.endsWith(".tgz")) {
|
||||||
// tgz
|
// tgz
|
||||||
await fsp.mkdir(tempDir, { recursive: true });
|
await fsp.mkdir(tempDir, { recursive: true });
|
||||||
@ -236,14 +237,14 @@ async function resolveSidecar(binInfo) {
|
|||||||
//strip: 1, // 可能需要根据实际的 .tgz 文件结构调整
|
//strip: 1, // 可能需要根据实际的 .tgz 文件结构调整
|
||||||
});
|
});
|
||||||
const files = await fsp.readdir(tempDir);
|
const files = await fsp.readdir(tempDir);
|
||||||
console.log(`[DEBUG]: "${name}" files in tempDir:`, files);
|
log_debug(`"${name}" files in tempDir:`, files);
|
||||||
const extractedFile = files.find((file) => file.startsWith("虚空终端-"));
|
const extractedFile = files.find((file) => file.startsWith("虚空终端-"));
|
||||||
if (extractedFile) {
|
if (extractedFile) {
|
||||||
const extractedFilePath = path.join(tempDir, extractedFile);
|
const extractedFilePath = path.join(tempDir, extractedFile);
|
||||||
await fsp.rename(extractedFilePath, sidecarPath);
|
await fsp.rename(extractedFilePath, sidecarPath);
|
||||||
console.log(`[INFO]: "${name}" file renamed to "${sidecarPath}"`);
|
log_success(`"${name}" file renamed to "${sidecarPath}"`);
|
||||||
execSync(`chmod 755 ${sidecarPath}`);
|
execSync(`chmod 755 ${sidecarPath}`);
|
||||||
console.log(`[INFO]: "${name}" chmod binary finished`);
|
log_success(`chmod binary finished: "${name}"`);
|
||||||
} else {
|
} else {
|
||||||
throw new Error(`Expected file not found in ${tempDir}`);
|
throw new Error(`Expected file not found in ${tempDir}`);
|
||||||
}
|
}
|
||||||
@ -253,16 +254,16 @@ async function resolveSidecar(binInfo) {
|
|||||||
const writeStream = fs.createWriteStream(sidecarPath);
|
const writeStream = fs.createWriteStream(sidecarPath);
|
||||||
await new Promise((resolve, reject) => {
|
await new Promise((resolve, reject) => {
|
||||||
const onError = (error) => {
|
const onError = (error) => {
|
||||||
console.error(`[ERROR]: "${name}" gz failed:`, error.message);
|
log_error(`"${name}" gz failed:`, error.message);
|
||||||
reject(error);
|
reject(error);
|
||||||
};
|
};
|
||||||
readStream
|
readStream
|
||||||
.pipe(zlib.createGunzip().on("error", onError))
|
.pipe(zlib.createGunzip().on("error", onError))
|
||||||
.pipe(writeStream)
|
.pipe(writeStream)
|
||||||
.on("finish", () => {
|
.on("finish", () => {
|
||||||
console.log(`[INFO]: "${name}" gunzip finished`);
|
log_success(`chmod binary finished: "${name}"`);
|
||||||
execSync(`chmod 755 ${sidecarPath}`);
|
execSync(`chmod 755 ${sidecarPath}`);
|
||||||
console.log(`[INFO]: "${name}" chmod binary finished`);
|
log_success(`chmod binary finished: "${name}"`);
|
||||||
resolve();
|
resolve();
|
||||||
})
|
})
|
||||||
.on("error", onError);
|
.on("error", onError);
|
||||||
@ -292,7 +293,7 @@ async function resolveResource(binInfo) {
|
|||||||
await fsp.mkdir(resDir, { recursive: true });
|
await fsp.mkdir(resDir, { recursive: true });
|
||||||
await downloadFile(downloadURL, targetPath);
|
await downloadFile(downloadURL, targetPath);
|
||||||
|
|
||||||
console.log(`[INFO]: ${file} finished`);
|
log_success(`${file} finished`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -319,7 +320,7 @@ async function downloadFile(url, path) {
|
|||||||
const buffer = await response.arrayBuffer();
|
const buffer = await response.arrayBuffer();
|
||||||
await fsp.writeFile(path, new Uint8Array(buffer));
|
await fsp.writeFile(path, new Uint8Array(buffer));
|
||||||
|
|
||||||
console.log(`[INFO]: download finished "${url}"`);
|
log_success(`download finished: ${file}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// SimpleSC.dll
|
// SimpleSC.dll
|
||||||
@ -344,11 +345,11 @@ const resolvePlugin = async () => {
|
|||||||
}
|
}
|
||||||
const zip = new AdmZip(tempZip);
|
const zip = new AdmZip(tempZip);
|
||||||
zip.getEntries().forEach((entry) => {
|
zip.getEntries().forEach((entry) => {
|
||||||
console.log(`[DEBUG]: "SimpleSC" entry name`, entry.entryName);
|
log_debug(`"SimpleSC" entry name`, entry.entryName);
|
||||||
});
|
});
|
||||||
zip.extractAllTo(tempDir, true);
|
zip.extractAllTo(tempDir, true);
|
||||||
await fsp.cp(tempDll, pluginPath, { recursive: true, force: true });
|
await fsp.cp(tempDll, pluginPath, { recursive: true, force: true });
|
||||||
console.log(`[INFO]: "SimpleSC" unzip finished`);
|
log_success(`unzip finished: "SimpleSC"`);
|
||||||
} finally {
|
} finally {
|
||||||
await fsp.rm(tempDir, { recursive: true, force: true });
|
await fsp.rm(tempDir, { recursive: true, force: true });
|
||||||
}
|
}
|
||||||
@ -366,7 +367,7 @@ const resolveServicePermission = async () => {
|
|||||||
const targetPath = path.join(resDir, f);
|
const targetPath = path.join(resDir, f);
|
||||||
if (fs.existsSync(targetPath)) {
|
if (fs.existsSync(targetPath)) {
|
||||||
execSync(`chmod 755 ${targetPath}`);
|
execSync(`chmod 755 ${targetPath}`);
|
||||||
console.log(`[INFO]: "${targetPath}" chmod finished`);
|
log_success(`chmod finished: "${f}"`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -481,7 +482,7 @@ async function runTask() {
|
|||||||
await task.func();
|
await task.func();
|
||||||
break;
|
break;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(`[ERROR]: task::${task.name} try ${i} ==`, err.message);
|
log_error(`task::${task.name} try ${i} ==`, err.message);
|
||||||
if (i === task.retry - 1) throw err;
|
if (i === task.retry - 1) throw err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
11
scripts/utils.mjs
Normal file
11
scripts/utils.mjs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import clc from "cli-color";
|
||||||
|
|
||||||
|
export const log_success = (msg, ...optionalParams) =>
|
||||||
|
console.log(clc.green(msg), ...optionalParams);
|
||||||
|
export const log_error = (msg, ...optionalParams) =>
|
||||||
|
console.log(clc.red(msg), ...optionalParams);
|
||||||
|
export const log_info = (msg, ...optionalParams) =>
|
||||||
|
console.log(clc.bgBlue(msg), ...optionalParams);
|
||||||
|
var debugMsg = clc.xterm(245);
|
||||||
|
export const log_debug = (msg, ...optionalParams) =>
|
||||||
|
console.log(debugMsg(msg), ...optionalParams);
|
Loading…
x
Reference in New Issue
Block a user