coolbox 0.2.0 → 0.2.1
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/actions.js +7 -3
- package/dist/actions.js.map +1 -1
- package/dist/runner.js +36 -1
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
package/dist/actions.js
CHANGED
|
@@ -11,6 +11,7 @@ export const actions = [
|
|
|
11
11
|
command: 'bash <(wget -qO- --no-check-certificate {url}) {os-name}',
|
|
12
12
|
group: 'system',
|
|
13
13
|
dangerous: true,
|
|
14
|
+
needRoot: true,
|
|
14
15
|
params: [
|
|
15
16
|
{ name: 'os-name', message: '请输入要安装的系统(如 alpine-3.23, debian-13, ubuntu-26.04)' },
|
|
16
17
|
],
|
|
@@ -23,21 +24,24 @@ export const actions = [
|
|
|
23
24
|
name: '设置 Swap',
|
|
24
25
|
description: '通过 spiritLHLS/addswap 一键设置交换空间',
|
|
25
26
|
type: 'remote',
|
|
26
|
-
command: '
|
|
27
|
+
command: 'bash <(wget -qO- --no-check-certificate https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritLHLS/addswap/main/addswap.sh)',
|
|
28
|
+
needRoot: true,
|
|
27
29
|
group: 'system',
|
|
28
30
|
},
|
|
29
31
|
{
|
|
30
32
|
name: '设置系统国内镜像源',
|
|
31
33
|
description: '通过 LinuxMirrors 一键更换系统软件源',
|
|
32
34
|
type: 'remote',
|
|
33
|
-
command: '
|
|
35
|
+
command: 'bash <(curl -sSL https://linuxmirrors.cn/main.sh)',
|
|
36
|
+
needRoot: true,
|
|
34
37
|
group: 'system',
|
|
35
38
|
},
|
|
36
39
|
{
|
|
37
40
|
name: '安装 Docker 并设置国内镜像源',
|
|
38
41
|
description: '通过 LinuxMirrors 一键安装 Docker 并配置国内镜像加速',
|
|
39
42
|
type: 'remote',
|
|
40
|
-
command: '
|
|
43
|
+
command: 'bash <(curl -sSL https://linuxmirrors.cn/docker.sh)',
|
|
44
|
+
needRoot: true,
|
|
41
45
|
group: 'container',
|
|
42
46
|
},
|
|
43
47
|
{
|
package/dist/actions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;IACrC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAa;IAC/B;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,0CAA0C;QACvD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,0DAA0D;QACnE,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,IAAI;QACf,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,mDAAmD,EAAE;SAClF;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,kEAAkE;YAC5E,aAAa,EAAE,yEAAyE;SACzF;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;IACrC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAa;IAC/B;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,0CAA0C;QACvD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,0DAA0D;QACnE,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,mDAAmD,EAAE;SAClF;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,kEAAkE;YAC5E,aAAa,EAAE,yEAAyE;SACzF;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,yIAAyI;QAClJ,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,2BAA2B;QACxC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,mDAAmD;QAC5D,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,uCAAuC;QACpD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,qDAAqD;QAC9D,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,WAAW;KACnB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wBAAwB;QACrC,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,SAAS;KACjB;CACF,CAAC"}
|
package/dist/runner.js
CHANGED
|
@@ -1,9 +1,37 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
2
3
|
import { fileURLToPath } from 'node:url';
|
|
3
4
|
import { dirname, join } from 'node:path';
|
|
4
5
|
import { detectNetwork } from './network.js';
|
|
5
6
|
const __filename = fileURLToPath(import.meta.url);
|
|
6
7
|
const __dirname = dirname(__filename);
|
|
8
|
+
/**
|
|
9
|
+
* 检查当前是否为 root 用户
|
|
10
|
+
*/
|
|
11
|
+
function isRoot() {
|
|
12
|
+
return process.getuid?.() === 0;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 检查系统中是否存在 sudo 命令
|
|
16
|
+
*/
|
|
17
|
+
function hasSudo() {
|
|
18
|
+
return existsSync('/usr/bin/sudo') || existsSync('/bin/sudo');
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 获取 sudo 前缀:
|
|
22
|
+
* - 已是 root → 不需要前缀
|
|
23
|
+
* - 非 root 但有 sudo → 返回 "sudo"
|
|
24
|
+
* - 非 root 且没有 sudo → 抛出错误,提示安装
|
|
25
|
+
*/
|
|
26
|
+
function requireSudo() {
|
|
27
|
+
if (isRoot())
|
|
28
|
+
return '';
|
|
29
|
+
if (hasSudo())
|
|
30
|
+
return 'sudo';
|
|
31
|
+
console.error('\n❌ 该操作需要 root 权限,但系统中未找到 sudo 命令。');
|
|
32
|
+
console.error(' 请先安装 sudo: apt install sudo / yum install sudo\n');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
7
35
|
function resolveCommand(action, paramValues) {
|
|
8
36
|
let cmd = action.command;
|
|
9
37
|
if (action.type === 'remote' && action.urls) {
|
|
@@ -13,11 +41,18 @@ function resolveCommand(action, paramValues) {
|
|
|
13
41
|
}
|
|
14
42
|
if (action.type === 'local') {
|
|
15
43
|
const scriptPath = join(__dirname, 'scripts', action.command);
|
|
16
|
-
cmd = `
|
|
44
|
+
cmd = `bash "${scriptPath}"`;
|
|
17
45
|
}
|
|
18
46
|
for (const [key, value] of Object.entries(paramValues)) {
|
|
19
47
|
cmd = cmd.replace(`{${key}}`, value);
|
|
20
48
|
}
|
|
49
|
+
// 需要 root 权限的操作,自动加 sudo 前缀
|
|
50
|
+
if (action.needRoot) {
|
|
51
|
+
const sudo = requireSudo();
|
|
52
|
+
if (sudo) {
|
|
53
|
+
cmd = `${sudo} ${cmd}`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
21
56
|
return cmd;
|
|
22
57
|
}
|
|
23
58
|
export function runAction(action, paramValues = {}) {
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,SAAS,cAAc,CAAC,MAAc,EAAE,WAAmC;IACzE,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;IAEzB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;QAClF,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED