coolbox 0.1.1 → 0.2.0

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/confirm.js CHANGED
@@ -1,19 +1,17 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
2
  const WARNING_BANNER = `
3
- ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
4
- ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
5
- ⚠️ ⚠️
6
- ⚠️ ██████╗ ██╗ ██╗███████╗██████╗ ███████╗ ⚠️
7
- ⚠️ ██╔═══██╗██║ ██║██╔════╝██╔══██╗██╔════╝ ⚠️
8
- ⚠️ ██║ ██║██║ ██║█████╗ ██████╔╝███████╗ ⚠️
9
- ⚠️ ██║▄▄ ██║██║ ██║██╔══╝ ██╔══██╗╚════██║ ⚠️
10
- ⚠️ ╚██████╔╝╚██████╔╝███████╗██║ ██║███████║ ⚠️
11
- ⚠️ ╚══▀▀═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ⚠️
12
- ⚠️ ⚠️
13
- ⚠️ 该操作不可逆转,执行后数据将无法恢复! ⚠️
14
- ⚠️ ⚠️
15
- ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
16
- ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
3
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4
+ ! !
5
+ ! ██████╗ ██╗ ██╗███████╗██████╗ ███████╗ !
6
+ ! ██╔═══██╗██║ ██║██╔════╝██╔══██╗██╔════╝ !
7
+ ! ██║ ██║██║ ██║█████╗ ██████╔╝███████╗ !
8
+ ! ██║▄▄ ██║██║ ██║██╔══╝ ██╔══██╗╚════██║ !
9
+ ! ╚██████╔╝╚██████╔╝███████╗██║ ██║███████║ !
10
+ ! ╚══▀▀═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚══════╝ !
11
+ ! !
12
+ ! 该操作不可逆转,执行后数据将无法恢复! !
13
+ ! !
14
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
17
15
  `;
18
16
  export async function confirmDangerous(actionName) {
19
17
  console.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../src/confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;CAetB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IACvD,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,IAAI,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;QAC3B,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../src/confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,cAAc,GAAG;;;;;;;;;;;;;CAatB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IACvD,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,IAAI,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;QAC3B,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { showMenu } from './menu.js';
3
- const VERSION = '0.1.0';
3
+ const VERSION = '0.2.0';
4
4
  const BANNER = `
5
5
  ╔═══════════════════════════════════╗
6
- ║ ⚡ CoolBox (快工具箱) v${VERSION}
6
+ ║ ⚡ CoolBox (快工具箱) v${VERSION}
7
7
  ║ Linux 服务器运维工具箱 ║
8
8
  ╚═══════════════════════════════════╝
9
9
  `;
package/dist/menu.js CHANGED
@@ -2,28 +2,6 @@ import { select, input, confirm } from '@inquirer/prompts';
2
2
  import { actions, groups } from './actions.js';
3
3
  import { runAction } from './runner.js';
4
4
  import { confirmDangerous } from './confirm.js';
5
- function buildMenuItems() {
6
- const items = [];
7
- for (const group of groups) {
8
- items.push({
9
- name: `── ${group.label} ──`,
10
- value: `__group__${group.name}`,
11
- });
12
- const groupActions = actions.filter((a) => a.group === group.name);
13
- for (const action of groupActions) {
14
- items.push({
15
- name: ` ${action.name}`,
16
- value: action.name,
17
- description: action.description,
18
- });
19
- }
20
- }
21
- items.push({
22
- name: '退出',
23
- value: '__exit__',
24
- });
25
- return items;
26
- }
27
5
  async function collectParams(action) {
28
6
  const values = {};
29
7
  if (!action.params)
@@ -36,84 +14,98 @@ async function collectParams(action) {
36
14
  }
37
15
  return values;
38
16
  }
17
+ async function executeAction(action) {
18
+ // 危险操作二次确认
19
+ if (action.dangerous) {
20
+ const confirmed = await confirmDangerous(action.name);
21
+ if (!confirmed) {
22
+ console.log('\n已取消操作。\n');
23
+ return;
24
+ }
25
+ }
26
+ // 收集参数
27
+ const paramValues = await collectParams(action);
28
+ // 准备提示
29
+ console.log('');
30
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
31
+ console.log(` 📋 即将执行: ${action.name}`);
32
+ if (action.description) {
33
+ console.log(` ${action.description}`);
34
+ }
35
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
36
+ console.log('');
37
+ const ready = await confirm({
38
+ message: '确认开始执行?',
39
+ default: true,
40
+ });
41
+ if (!ready) {
42
+ console.log('\n已取消操作。\n');
43
+ return;
44
+ }
45
+ // 执行
46
+ console.log('');
47
+ const result = await runAction(action, paramValues);
48
+ // 显示结果
49
+ console.log('');
50
+ if (result.exitCode === 0) {
51
+ console.log('✅ 操作执行成功。');
52
+ }
53
+ else {
54
+ console.log(`❌ 操作执行失败(退出码: ${result.exitCode ?? 'unknown'})。`);
55
+ }
56
+ // 返回菜单或退出
57
+ const next = await select({
58
+ message: '接下来:',
59
+ choices: [
60
+ { name: '返回主菜单', value: 'menu' },
61
+ { name: '退出', value: 'exit' },
62
+ ],
63
+ default: 'menu',
64
+ });
65
+ if (next === 'exit') {
66
+ process.exit(0);
67
+ }
68
+ }
69
+ async function showGroupActions(groupName, groupLabel) {
70
+ const groupActions = actions.filter((a) => a.group === groupName);
71
+ while (true) {
72
+ const choices = groupActions.map((action) => ({
73
+ name: action.name,
74
+ value: action.name,
75
+ description: action.description,
76
+ }));
77
+ choices.push({ name: '返回主菜单', value: '__back__', description: '' });
78
+ const selected = await select({
79
+ message: `${groupLabel} — 请选择操作:`,
80
+ choices,
81
+ });
82
+ if (selected === '__back__') {
83
+ return;
84
+ }
85
+ const action = groupActions.find((a) => a.name === selected);
86
+ if (!action)
87
+ return;
88
+ await executeAction(action);
89
+ }
90
+ }
39
91
  export async function showMenu() {
40
- const menuItems = buildMenuItems();
41
- let lastSelected = menuItems.find((i) => !i.value.startsWith('__'))?.value ?? menuItems[0]?.value;
42
92
  while (true) {
93
+ const choices = groups.map((g) => ({
94
+ name: g.label,
95
+ value: g.name,
96
+ }));
97
+ choices.push({ name: '退出', value: '__exit__' });
43
98
  const selected = await select({
44
- message: '请选择操作:',
45
- choices: menuItems.map((item) => ({
46
- name: item.name,
47
- value: item.value,
48
- description: item.description,
49
- })),
50
- default: lastSelected,
99
+ message: '请选择功能分类:',
100
+ choices,
51
101
  });
52
102
  if (selected === '__exit__') {
53
103
  process.exit(0);
54
104
  }
55
- if (selected.startsWith('__group__')) {
56
- lastSelected = selected;
57
- continue;
58
- }
59
- const action = actions.find((a) => a.name === selected);
60
- if (!action) {
61
- lastSelected = selected;
62
- continue;
63
- }
64
- // 危险操作二次确认
65
- if (action.dangerous) {
66
- const confirmed = await confirmDangerous(action.name);
67
- if (!confirmed) {
68
- console.log('\n已取消操作。\n');
69
- lastSelected = selected;
70
- continue;
71
- }
72
- }
73
- // 收集参数
74
- const paramValues = await collectParams(action);
75
- // 准备提示
76
- console.log('');
77
- console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
78
- console.log(` 📋 即将执行: ${action.name}`);
79
- if (action.description) {
80
- console.log(` ${action.description}`);
81
- }
82
- console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
83
- console.log('');
84
- const ready = await confirm({
85
- message: '确认开始执行?',
86
- default: true,
87
- });
88
- if (!ready) {
89
- console.log('\n已取消操作。\n');
90
- lastSelected = selected;
105
+ const group = groups.find((g) => g.name === selected);
106
+ if (!group)
91
107
  continue;
92
- }
93
- // 执行
94
- console.log('');
95
- const result = await runAction(action, paramValues);
96
- // 显示结果
97
- console.log('');
98
- if (result.exitCode === 0) {
99
- console.log('✅ 操作执行成功。');
100
- }
101
- else {
102
- console.log(`❌ 操作执行失败(退出码: ${result.exitCode ?? 'unknown'})。`);
103
- }
104
- // 返回菜单或退出
105
- const next = await select({
106
- message: '接下来:',
107
- choices: [
108
- { name: '返回菜单', value: 'menu' },
109
- { name: '退出', value: 'exit' },
110
- ],
111
- default: 'menu',
112
- });
113
- if (next === 'exit') {
114
- process.exit(0);
115
- }
116
- lastSelected = selected;
108
+ await showGroupActions(group.name, group.label);
117
109
  }
118
110
  }
119
111
  //# sourceMappingURL=menu.js.map
package/dist/menu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coolbox",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Quick Tool Box - Linux 服务器运维工具箱",
5
5
  "type": "module",
6
6
  "bin": {