okit-cli 0.0.1 → 2.1.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/commands/auth.d.ts +4 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +134 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/check.d.ts +2 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +122 -29
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/menu.d.ts.map +1 -1
- package/dist/commands/menu.js +5 -0
- package/dist/commands/menu.js.map +1 -1
- package/dist/commands/profile.d.ts +18 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +409 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/relay.d.ts +13 -0
- package/dist/commands/relay.d.ts.map +1 -0
- package/dist/commands/relay.js +208 -0
- package/dist/commands/relay.js.map +1 -0
- package/dist/commands/repo.js +0 -16
- package/dist/commands/repo.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +21 -72
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/upgrade.d.ts +1 -3
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +45 -110
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/commands/vault.d.ts +14 -0
- package/dist/commands/vault.d.ts.map +1 -0
- package/dist/commands/vault.js +255 -0
- package/dist/commands/vault.js.map +1 -0
- package/dist/config/i18n.d.ts +71 -0
- package/dist/config/i18n.d.ts.map +1 -1
- package/dist/config/i18n.js +150 -0
- package/dist/config/i18n.js.map +1 -1
- package/dist/config/registry.d.ts +14 -6
- package/dist/config/registry.d.ts.map +1 -1
- package/dist/config/registry.js +638 -68
- package/dist/config/registry.js.map +1 -1
- package/dist/config/user.d.ts +4 -0
- package/dist/config/user.d.ts.map +1 -1
- package/dist/config/user.js +1 -0
- package/dist/config/user.js.map +1 -1
- package/dist/executor/deps/BrewDependencyProvider.d.ts.map +1 -1
- package/dist/executor/deps/BrewDependencyProvider.js +4 -2
- package/dist/executor/deps/BrewDependencyProvider.js.map +1 -1
- package/dist/executor/deps/NpmDependencyProvider.d.ts.map +1 -1
- package/dist/executor/deps/NpmDependencyProvider.js +4 -2
- package/dist/executor/deps/NpmDependencyProvider.js.map +1 -1
- package/dist/executor/deps/PipxDependencyProvider.d.ts.map +1 -1
- package/dist/executor/deps/PipxDependencyProvider.js +4 -2
- package/dist/executor/deps/PipxDependencyProvider.js.map +1 -1
- package/dist/executor/deps/UvToolDependencyProvider.d.ts.map +1 -1
- package/dist/executor/deps/UvToolDependencyProvider.js +4 -2
- package/dist/executor/deps/UvToolDependencyProvider.js.map +1 -1
- package/dist/executor/plan/registryDeps.d.ts.map +1 -1
- package/dist/executor/plan/registryDeps.js +13 -5
- package/dist/executor/plan/registryDeps.js.map +1 -1
- package/dist/executor/runner.d.ts.map +1 -1
- package/dist/executor/runner.js +11 -9
- package/dist/executor/runner.js.map +1 -1
- package/dist/main.js +188 -4
- package/dist/main.js.map +1 -1
- package/dist/utils/semver.d.ts +12 -0
- package/dist/utils/semver.d.ts.map +1 -0
- package/dist/utils/semver.js +71 -0
- package/dist/utils/semver.js.map +1 -0
- package/dist/vault/store.d.ts +51 -0
- package/dist/vault/store.d.ts.map +1 -0
- package/dist/vault/store.js +260 -0
- package/dist/vault/store.js.map +1 -0
- package/package.json +8 -3
package/dist/config/registry.js
CHANGED
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.DEFAULT_REGISTRY = exports.CACHE_DIR = exports.LOGS_DIR = exports.REGISTRY_PATH = exports.OKIT_DIR = void 0;
|
|
7
|
+
exports.resolveCmd = resolveCmd;
|
|
7
8
|
exports.ensureOkitDir = ensureOkitDir;
|
|
8
9
|
exports.loadRegistry = loadRegistry;
|
|
9
10
|
exports.resetRegistry = resetRegistry;
|
|
@@ -13,6 +14,15 @@ const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
|
13
14
|
const path_1 = __importDefault(require("path"));
|
|
14
15
|
const os_1 = __importDefault(require("os"));
|
|
15
16
|
const child_process_1 = require("child_process");
|
|
17
|
+
// 从 CmdField 中解析出当前平台的命令
|
|
18
|
+
function resolveCmd(cmd) {
|
|
19
|
+
if (cmd === undefined)
|
|
20
|
+
return undefined;
|
|
21
|
+
if (typeof cmd === "string")
|
|
22
|
+
return cmd;
|
|
23
|
+
const platform = process.platform;
|
|
24
|
+
return cmd[platform];
|
|
25
|
+
}
|
|
16
26
|
exports.OKIT_DIR = path_1.default.join(os_1.default.homedir(), ".okit");
|
|
17
27
|
exports.REGISTRY_PATH = path_1.default.join(exports.OKIT_DIR, "registry.json");
|
|
18
28
|
exports.LOGS_DIR = path_1.default.join(exports.OKIT_DIR, "logs");
|
|
@@ -48,45 +58,81 @@ exports.DEFAULT_REGISTRY = {
|
|
|
48
58
|
// 系统基础
|
|
49
59
|
{
|
|
50
60
|
name: "Homebrew",
|
|
51
|
-
install: getHomebrewInstallCommand(),
|
|
52
|
-
upgrade: "brew update && brew upgrade",
|
|
53
|
-
check: "command -v brew",
|
|
54
|
-
versionCmd: "brew --version | head -1",
|
|
61
|
+
install: { darwin: getHomebrewInstallCommand() },
|
|
62
|
+
upgrade: { darwin: "brew update && brew upgrade" },
|
|
63
|
+
check: { darwin: "command -v brew" },
|
|
64
|
+
versionCmd: { darwin: "brew --version | head -1" },
|
|
55
65
|
},
|
|
56
66
|
// 开发基础
|
|
57
67
|
{
|
|
58
68
|
name: "Node.js",
|
|
59
|
-
install:
|
|
60
|
-
|
|
61
|
-
|
|
69
|
+
install: {
|
|
70
|
+
darwin: "brew install node",
|
|
71
|
+
linux: "curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - && sudo apt-get install -y nodejs",
|
|
72
|
+
},
|
|
73
|
+
upgrade: {
|
|
74
|
+
darwin: "brew upgrade node",
|
|
75
|
+
linux: "sudo apt-get update && sudo apt-get install -y nodejs",
|
|
76
|
+
},
|
|
77
|
+
uninstall: {
|
|
78
|
+
darwin: "brew uninstall node",
|
|
79
|
+
linux: "sudo apt-get remove -y nodejs",
|
|
80
|
+
},
|
|
62
81
|
check: "command -v node",
|
|
63
82
|
versionCmd: "node --version",
|
|
64
83
|
dependencies: ["Homebrew"],
|
|
65
84
|
},
|
|
66
85
|
{
|
|
67
86
|
name: "Git",
|
|
68
|
-
install:
|
|
69
|
-
|
|
70
|
-
|
|
87
|
+
install: {
|
|
88
|
+
darwin: "brew install git",
|
|
89
|
+
linux: "sudo apt-get update && sudo apt-get install -y git",
|
|
90
|
+
},
|
|
91
|
+
upgrade: {
|
|
92
|
+
darwin: "brew upgrade git",
|
|
93
|
+
linux: "sudo apt-get update && sudo apt-get install -y git",
|
|
94
|
+
},
|
|
95
|
+
uninstall: {
|
|
96
|
+
darwin: "brew uninstall --force git",
|
|
97
|
+
linux: "sudo apt-get remove -y git",
|
|
98
|
+
},
|
|
71
99
|
check: "command -v git",
|
|
72
100
|
versionCmd: "git --version",
|
|
73
|
-
dependencies: ["Homebrew"],
|
|
74
101
|
},
|
|
75
102
|
{
|
|
76
103
|
name: "GitHub CLI",
|
|
77
|
-
install:
|
|
78
|
-
|
|
79
|
-
|
|
104
|
+
install: {
|
|
105
|
+
darwin: "brew install gh",
|
|
106
|
+
linux: "type -p curl >/dev/null && (curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg && echo 'deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main' | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null && sudo apt-get update && sudo apt-get install -y gh)",
|
|
107
|
+
},
|
|
108
|
+
upgrade: {
|
|
109
|
+
darwin: "brew upgrade gh",
|
|
110
|
+
linux: "sudo apt-get update && sudo apt-get install -y gh",
|
|
111
|
+
},
|
|
112
|
+
uninstall: {
|
|
113
|
+
darwin: "brew uninstall gh",
|
|
114
|
+
linux: "sudo apt-get remove -y gh",
|
|
115
|
+
},
|
|
80
116
|
check: "command -v gh",
|
|
81
117
|
versionCmd: "gh --version | head -1",
|
|
82
118
|
authCheck: "gh auth status 2>&1",
|
|
119
|
+
authFix: "gh auth login",
|
|
83
120
|
dependencies: ["Homebrew"],
|
|
84
121
|
},
|
|
85
122
|
{
|
|
86
123
|
name: "pnpm",
|
|
87
|
-
install:
|
|
88
|
-
|
|
89
|
-
|
|
124
|
+
install: {
|
|
125
|
+
darwin: "brew install pnpm",
|
|
126
|
+
linux: "npm install -g pnpm",
|
|
127
|
+
},
|
|
128
|
+
upgrade: {
|
|
129
|
+
darwin: "brew upgrade pnpm",
|
|
130
|
+
linux: "npm update -g pnpm",
|
|
131
|
+
},
|
|
132
|
+
uninstall: {
|
|
133
|
+
darwin: "brew uninstall pnpm",
|
|
134
|
+
linux: "npm uninstall -g pnpm",
|
|
135
|
+
},
|
|
90
136
|
check: "command -v pnpm",
|
|
91
137
|
versionCmd: "pnpm --version",
|
|
92
138
|
dependencies: ["Homebrew"],
|
|
@@ -101,21 +147,40 @@ exports.DEFAULT_REGISTRY = {
|
|
|
101
147
|
},
|
|
102
148
|
{
|
|
103
149
|
name: "Python",
|
|
104
|
-
install:
|
|
105
|
-
|
|
106
|
-
|
|
150
|
+
install: {
|
|
151
|
+
darwin: "brew install python",
|
|
152
|
+
linux: "sudo apt-get update && sudo apt-get install -y python3 python3-pip",
|
|
153
|
+
},
|
|
154
|
+
upgrade: {
|
|
155
|
+
darwin: "brew upgrade python",
|
|
156
|
+
linux: "sudo apt-get update && sudo apt-get install -y python3 python3-pip",
|
|
157
|
+
},
|
|
158
|
+
uninstall: {
|
|
159
|
+
darwin: "brew uninstall python",
|
|
160
|
+
linux: "sudo apt-get remove -y python3",
|
|
161
|
+
},
|
|
107
162
|
check: "command -v python3",
|
|
108
163
|
versionCmd: "python3 --version",
|
|
109
164
|
dependencies: ["Homebrew"],
|
|
110
165
|
},
|
|
111
166
|
{
|
|
112
167
|
name: "Docker",
|
|
113
|
-
install:
|
|
114
|
-
|
|
115
|
-
|
|
168
|
+
install: {
|
|
169
|
+
darwin: "brew install --cask docker || echo 'Homebrew 安装失败,请手动从 https://www.docker.com/products/docker-desktop 下载安装'",
|
|
170
|
+
linux: "curl -fsSL https://get.docker.com | sudo sh && sudo usermod -aG docker $USER",
|
|
171
|
+
},
|
|
172
|
+
upgrade: {
|
|
173
|
+
darwin: "brew upgrade --cask docker",
|
|
174
|
+
linux: "sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io",
|
|
175
|
+
},
|
|
176
|
+
uninstall: {
|
|
177
|
+
darwin: "brew uninstall --cask docker",
|
|
178
|
+
linux: "sudo apt-get remove -y docker-ce docker-ce-cli containerd.io",
|
|
179
|
+
},
|
|
116
180
|
check: "command -v docker",
|
|
117
181
|
versionCmd: "docker --version",
|
|
118
182
|
authCheck: "docker info 2>&1 | head -3",
|
|
183
|
+
authFix: "docker login",
|
|
119
184
|
dependencies: ["Homebrew"],
|
|
120
185
|
},
|
|
121
186
|
// AI Coding
|
|
@@ -148,18 +213,36 @@ exports.DEFAULT_REGISTRY = {
|
|
|
148
213
|
// 信息抓取
|
|
149
214
|
{
|
|
150
215
|
name: "yt-dlp",
|
|
151
|
-
install:
|
|
152
|
-
|
|
153
|
-
|
|
216
|
+
install: {
|
|
217
|
+
darwin: "brew install yt-dlp",
|
|
218
|
+
linux: "sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && sudo chmod a+rx /usr/local/bin/yt-dlp",
|
|
219
|
+
},
|
|
220
|
+
upgrade: {
|
|
221
|
+
darwin: "brew upgrade yt-dlp",
|
|
222
|
+
linux: "sudo yt-dlp -U",
|
|
223
|
+
},
|
|
224
|
+
uninstall: {
|
|
225
|
+
darwin: "brew uninstall yt-dlp",
|
|
226
|
+
linux: "sudo rm -f /usr/local/bin/yt-dlp",
|
|
227
|
+
},
|
|
154
228
|
check: "command -v yt-dlp",
|
|
155
229
|
versionCmd: "yt-dlp --version",
|
|
156
230
|
dependencies: ["Homebrew"],
|
|
157
231
|
},
|
|
158
232
|
{
|
|
159
233
|
name: "curl",
|
|
160
|
-
install:
|
|
161
|
-
|
|
162
|
-
|
|
234
|
+
install: {
|
|
235
|
+
darwin: "brew install curl",
|
|
236
|
+
linux: "sudo apt-get update && sudo apt-get install -y curl",
|
|
237
|
+
},
|
|
238
|
+
upgrade: {
|
|
239
|
+
darwin: "brew upgrade curl",
|
|
240
|
+
linux: "sudo apt-get update && sudo apt-get install -y curl",
|
|
241
|
+
},
|
|
242
|
+
uninstall: {
|
|
243
|
+
darwin: "brew uninstall curl",
|
|
244
|
+
linux: "sudo apt-get remove -y curl",
|
|
245
|
+
},
|
|
163
246
|
check: "command -v curl",
|
|
164
247
|
versionCmd: "curl --version | head -1",
|
|
165
248
|
dependencies: ["Homebrew"],
|
|
@@ -191,36 +274,72 @@ exports.DEFAULT_REGISTRY = {
|
|
|
191
274
|
},
|
|
192
275
|
{
|
|
193
276
|
name: "Pandoc",
|
|
194
|
-
install:
|
|
195
|
-
|
|
196
|
-
|
|
277
|
+
install: {
|
|
278
|
+
darwin: "brew install pandoc",
|
|
279
|
+
linux: "sudo apt-get update && sudo apt-get install -y pandoc",
|
|
280
|
+
},
|
|
281
|
+
upgrade: {
|
|
282
|
+
darwin: "brew upgrade pandoc",
|
|
283
|
+
linux: "sudo apt-get update && sudo apt-get install -y pandoc",
|
|
284
|
+
},
|
|
285
|
+
uninstall: {
|
|
286
|
+
darwin: "brew uninstall pandoc",
|
|
287
|
+
linux: "sudo apt-get remove -y pandoc",
|
|
288
|
+
},
|
|
197
289
|
check: "command -v pandoc",
|
|
198
290
|
dependencies: ["Homebrew"],
|
|
199
291
|
},
|
|
200
292
|
// 视频 & 多媒体
|
|
201
293
|
{
|
|
202
294
|
name: "ffmpeg",
|
|
203
|
-
install:
|
|
204
|
-
|
|
205
|
-
|
|
295
|
+
install: {
|
|
296
|
+
darwin: "brew install ffmpeg",
|
|
297
|
+
linux: "sudo apt-get update && sudo apt-get install -y ffmpeg",
|
|
298
|
+
},
|
|
299
|
+
upgrade: {
|
|
300
|
+
darwin: "brew upgrade ffmpeg",
|
|
301
|
+
linux: "sudo apt-get update && sudo apt-get install -y ffmpeg",
|
|
302
|
+
},
|
|
303
|
+
uninstall: {
|
|
304
|
+
darwin: "brew uninstall ffmpeg",
|
|
305
|
+
linux: "sudo apt-get remove -y ffmpeg",
|
|
306
|
+
},
|
|
206
307
|
check: "command -v ffmpeg",
|
|
207
308
|
versionCmd: "ffmpeg -version 2>&1 | head -1",
|
|
208
309
|
dependencies: ["Homebrew"],
|
|
209
310
|
},
|
|
210
311
|
{
|
|
211
312
|
name: "ImageMagick",
|
|
212
|
-
install:
|
|
213
|
-
|
|
214
|
-
|
|
313
|
+
install: {
|
|
314
|
+
darwin: "brew install imagemagick",
|
|
315
|
+
linux: "sudo apt-get update && sudo apt-get install -y imagemagick",
|
|
316
|
+
},
|
|
317
|
+
upgrade: {
|
|
318
|
+
darwin: "brew upgrade imagemagick",
|
|
319
|
+
linux: "sudo apt-get update && sudo apt-get install -y imagemagick",
|
|
320
|
+
},
|
|
321
|
+
uninstall: {
|
|
322
|
+
darwin: "brew uninstall imagemagick",
|
|
323
|
+
linux: "sudo apt-get remove -y imagemagick",
|
|
324
|
+
},
|
|
215
325
|
check: "command -v convert",
|
|
216
326
|
versionCmd: "convert --version | head -1",
|
|
217
327
|
dependencies: ["Homebrew"],
|
|
218
328
|
},
|
|
219
329
|
{
|
|
220
330
|
name: "pipx",
|
|
221
|
-
install:
|
|
222
|
-
|
|
223
|
-
|
|
331
|
+
install: {
|
|
332
|
+
darwin: "brew install pipx && pipx ensurepath",
|
|
333
|
+
linux: "sudo apt-get update && sudo apt-get install -y pipx && pipx ensurepath",
|
|
334
|
+
},
|
|
335
|
+
upgrade: {
|
|
336
|
+
darwin: "brew upgrade pipx",
|
|
337
|
+
linux: "sudo apt-get update && sudo apt-get install -y pipx",
|
|
338
|
+
},
|
|
339
|
+
uninstall: {
|
|
340
|
+
darwin: "brew uninstall pipx",
|
|
341
|
+
linux: "sudo apt-get remove -y pipx",
|
|
342
|
+
},
|
|
224
343
|
check: "command -v pipx",
|
|
225
344
|
versionCmd: "pipx --version",
|
|
226
345
|
dependencies: ["Homebrew", "Python"],
|
|
@@ -244,9 +363,18 @@ exports.DEFAULT_REGISTRY = {
|
|
|
244
363
|
},
|
|
245
364
|
{
|
|
246
365
|
name: "DuckDB",
|
|
247
|
-
install:
|
|
248
|
-
|
|
249
|
-
|
|
366
|
+
install: {
|
|
367
|
+
darwin: "brew install duckdb",
|
|
368
|
+
linux: "curl -fsSL https://install.duckdb.org | sh",
|
|
369
|
+
},
|
|
370
|
+
upgrade: {
|
|
371
|
+
darwin: "brew upgrade duckdb",
|
|
372
|
+
linux: "curl -fsSL https://install.duckdb.org | sh",
|
|
373
|
+
},
|
|
374
|
+
uninstall: {
|
|
375
|
+
darwin: "brew uninstall duckdb",
|
|
376
|
+
linux: "sudo rm -f /usr/local/bin/duckdb",
|
|
377
|
+
},
|
|
250
378
|
check: "command -v duckdb",
|
|
251
379
|
versionCmd: "duckdb --version 2>/dev/null || echo unknown",
|
|
252
380
|
dependencies: ["Homebrew"],
|
|
@@ -254,62 +382,504 @@ exports.DEFAULT_REGISTRY = {
|
|
|
254
382
|
// 通用效率
|
|
255
383
|
{
|
|
256
384
|
name: "ripgrep",
|
|
257
|
-
install:
|
|
258
|
-
|
|
259
|
-
|
|
385
|
+
install: {
|
|
386
|
+
darwin: "brew install ripgrep",
|
|
387
|
+
linux: "sudo apt-get update && sudo apt-get install -y ripgrep",
|
|
388
|
+
},
|
|
389
|
+
upgrade: {
|
|
390
|
+
darwin: "brew upgrade ripgrep",
|
|
391
|
+
linux: "sudo apt-get update && sudo apt-get install -y ripgrep",
|
|
392
|
+
},
|
|
393
|
+
uninstall: {
|
|
394
|
+
darwin: "brew uninstall ripgrep",
|
|
395
|
+
linux: "sudo apt-get remove -y ripgrep",
|
|
396
|
+
},
|
|
260
397
|
check: "command -v rg",
|
|
261
398
|
versionCmd: "rg --version | head -1",
|
|
262
399
|
dependencies: ["Homebrew"],
|
|
263
400
|
},
|
|
264
401
|
{
|
|
265
402
|
name: "fzf",
|
|
266
|
-
install:
|
|
267
|
-
|
|
268
|
-
|
|
403
|
+
install: {
|
|
404
|
+
darwin: "brew install fzf",
|
|
405
|
+
linux: "sudo apt-get update && sudo apt-get install -y fzf",
|
|
406
|
+
},
|
|
407
|
+
upgrade: {
|
|
408
|
+
darwin: "brew upgrade fzf",
|
|
409
|
+
linux: "sudo apt-get update && sudo apt-get install -y fzf",
|
|
410
|
+
},
|
|
411
|
+
uninstall: {
|
|
412
|
+
darwin: "brew uninstall fzf",
|
|
413
|
+
linux: "sudo apt-get remove -y fzf",
|
|
414
|
+
},
|
|
269
415
|
check: "command -v fzf",
|
|
270
416
|
versionCmd: "fzf --version",
|
|
271
417
|
dependencies: ["Homebrew"],
|
|
272
418
|
},
|
|
273
419
|
{
|
|
274
420
|
name: "tmux",
|
|
275
|
-
install:
|
|
276
|
-
|
|
277
|
-
|
|
421
|
+
install: {
|
|
422
|
+
darwin: "brew install tmux",
|
|
423
|
+
linux: "sudo apt-get update && sudo apt-get install -y tmux",
|
|
424
|
+
},
|
|
425
|
+
upgrade: {
|
|
426
|
+
darwin: "brew upgrade tmux",
|
|
427
|
+
linux: "sudo apt-get update && sudo apt-get install -y tmux",
|
|
428
|
+
},
|
|
429
|
+
uninstall: {
|
|
430
|
+
darwin: "brew uninstall tmux",
|
|
431
|
+
linux: "sudo apt-get remove -y tmux",
|
|
432
|
+
},
|
|
278
433
|
check: "command -v tmux",
|
|
279
434
|
dependencies: ["Homebrew"],
|
|
280
435
|
},
|
|
281
436
|
{
|
|
282
437
|
name: "iTerm2",
|
|
283
|
-
install: "brew install --cask iterm2",
|
|
284
|
-
upgrade: "brew upgrade --cask iterm2",
|
|
285
|
-
uninstall: "brew uninstall --cask iterm2",
|
|
286
|
-
check: "test -d /Applications/iTerm.app",
|
|
438
|
+
install: { darwin: "brew install --cask iterm2" },
|
|
439
|
+
upgrade: { darwin: "brew upgrade --cask iterm2" },
|
|
440
|
+
uninstall: { darwin: "brew uninstall --cask iterm2" },
|
|
441
|
+
check: { darwin: "test -d /Applications/iTerm.app" },
|
|
287
442
|
dependencies: ["Homebrew"],
|
|
288
443
|
},
|
|
289
444
|
{
|
|
290
445
|
name: "iTerm2 Browser Plugin",
|
|
291
|
-
install:
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
446
|
+
install: {
|
|
447
|
+
darwin: "bash -lc 'set -euo pipefail; TMP_DIR=\"$(mktemp -d)\"; trap \"rm -rf \\\"$TMP_DIR\\\"\" EXIT; ZIP_PATH=\"$TMP_DIR/iTermBrowserPlugin-1.0.zip\"; curl -fL \"https://iterm2.com/downloads/browser-plugin/iTermBrowserPlugin-1.0.zip\" -o \"$ZIP_PATH\"; unzip -o \"$ZIP_PATH\" -d \"$TMP_DIR\" >/dev/null; APP_PATH=\"$(find \"$TMP_DIR\" -maxdepth 3 -type d -name \"iTermBrowserPlugin*.app\" | head -n 1)\"; if [ -z \"$APP_PATH\" ]; then echo \"未在压缩包中找到 iTermBrowserPlugin.app\"; exit 1; fi; sudo rm -rf \"/Applications/$(basename \"$APP_PATH\")\"; sudo mv \"$APP_PATH\" /Applications/'",
|
|
448
|
+
},
|
|
449
|
+
upgrade: {
|
|
450
|
+
darwin: "bash -lc 'set -euo pipefail; TMP_DIR=\"$(mktemp -d)\"; trap \"rm -rf \\\"$TMP_DIR\\\"\" EXIT; ZIP_PATH=\"$TMP_DIR/iTermBrowserPlugin-1.0.zip\"; curl -fL \"https://iterm2.com/downloads/browser-plugin/iTermBrowserPlugin-1.0.zip\" -o \"$ZIP_PATH\"; unzip -o \"$ZIP_PATH\" -d \"$TMP_DIR\" >/dev/null; APP_PATH=\"$(find \"$TMP_DIR\" -maxdepth 3 -type d -name \"iTermBrowserPlugin*.app\" | head -n 1)\"; if [ -z \"$APP_PATH\" ]; then echo \"未在压缩包中找到 iTermBrowserPlugin.app\"; exit 1; fi; sudo rm -rf \"/Applications/$(basename \"$APP_PATH\")\"; sudo mv \"$APP_PATH\" /Applications/'",
|
|
451
|
+
},
|
|
452
|
+
uninstall: { darwin: "sudo rm -rf /Applications/iTermBrowserPlugin.app" },
|
|
453
|
+
check: { darwin: "test -d /Applications/iTermBrowserPlugin.app" },
|
|
295
454
|
dependencies: ["iTerm2"],
|
|
296
455
|
},
|
|
297
456
|
{
|
|
298
457
|
name: "Warp",
|
|
299
|
-
install: "brew install --cask warp",
|
|
300
|
-
upgrade: "brew upgrade --cask warp",
|
|
301
|
-
uninstall: "brew uninstall --cask warp",
|
|
302
|
-
check: "test -d /Applications/Warp.app",
|
|
458
|
+
install: { darwin: "brew install --cask warp" },
|
|
459
|
+
upgrade: { darwin: "brew upgrade --cask warp" },
|
|
460
|
+
uninstall: { darwin: "brew uninstall --cask warp" },
|
|
461
|
+
check: { darwin: "test -d /Applications/Warp.app" },
|
|
303
462
|
dependencies: ["Homebrew"],
|
|
304
463
|
},
|
|
305
464
|
{
|
|
306
465
|
name: "uv (uvx)",
|
|
307
|
-
install:
|
|
308
|
-
|
|
309
|
-
|
|
466
|
+
install: {
|
|
467
|
+
darwin: "brew install uv",
|
|
468
|
+
linux: "curl -LsSf https://astral.sh/uv/install.sh | sh",
|
|
469
|
+
},
|
|
470
|
+
upgrade: {
|
|
471
|
+
darwin: "brew upgrade uv",
|
|
472
|
+
linux: "uv self update",
|
|
473
|
+
},
|
|
474
|
+
uninstall: {
|
|
475
|
+
darwin: "brew uninstall uv",
|
|
476
|
+
linux: "uv self uninstall",
|
|
477
|
+
},
|
|
310
478
|
check: "command -v uv && command -v uvx",
|
|
311
479
|
dependencies: ["Homebrew"],
|
|
312
480
|
},
|
|
481
|
+
// 部署 & 云服务
|
|
482
|
+
{
|
|
483
|
+
name: "Wrangler",
|
|
484
|
+
install: "npm install -g wrangler",
|
|
485
|
+
upgrade: "npm update -g wrangler",
|
|
486
|
+
uninstall: "npm uninstall -g wrangler",
|
|
487
|
+
check: "command -v wrangler",
|
|
488
|
+
versionCmd: "wrangler --version 2>/dev/null | head -1",
|
|
489
|
+
authCheck: "wrangler whoami 2>&1",
|
|
490
|
+
authFix: "wrangler login",
|
|
491
|
+
dependencies: ["Node.js"],
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
name: "Vercel CLI",
|
|
495
|
+
install: "npm install -g vercel",
|
|
496
|
+
upgrade: "npm update -g vercel",
|
|
497
|
+
uninstall: "npm uninstall -g vercel",
|
|
498
|
+
check: "command -v vercel",
|
|
499
|
+
versionCmd: "vercel --version 2>/dev/null | head -1",
|
|
500
|
+
authCheck: "vercel whoami 2>&1",
|
|
501
|
+
authFix: "vercel login",
|
|
502
|
+
dependencies: ["Node.js"],
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
name: "Netlify CLI",
|
|
506
|
+
install: "npm install -g netlify-cli",
|
|
507
|
+
upgrade: "npm update -g netlify-cli",
|
|
508
|
+
uninstall: "npm uninstall -g netlify-cli",
|
|
509
|
+
check: "command -v netlify",
|
|
510
|
+
versionCmd: "netlify --version 2>/dev/null | head -1",
|
|
511
|
+
authCheck: "netlify status 2>&1",
|
|
512
|
+
authFix: "netlify login",
|
|
513
|
+
dependencies: ["Node.js"],
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
name: "AWS CLI",
|
|
517
|
+
install: {
|
|
518
|
+
darwin: "brew install awscli",
|
|
519
|
+
linux: "curl \"https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip\" -o /tmp/awscliv2.zip && unzip -o /tmp/awscliv2.zip -d /tmp && sudo /tmp/aws/install && rm -rf /tmp/awscliv2.zip /tmp/aws",
|
|
520
|
+
},
|
|
521
|
+
upgrade: {
|
|
522
|
+
darwin: "brew upgrade awscli",
|
|
523
|
+
linux: "curl \"https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip\" -o /tmp/awscliv2.zip && unzip -o /tmp/awscliv2.zip -d /tmp && sudo /tmp/aws/install --update && rm -rf /tmp/awscliv2.zip /tmp/aws",
|
|
524
|
+
},
|
|
525
|
+
uninstall: {
|
|
526
|
+
darwin: "brew uninstall awscli",
|
|
527
|
+
linux: "sudo rm -rf /usr/local/aws-cli /usr/local/bin/aws /usr/local/bin/aws_completer",
|
|
528
|
+
},
|
|
529
|
+
check: "command -v aws",
|
|
530
|
+
versionCmd: "aws --version 2>&1 | head -1",
|
|
531
|
+
authCheck: "aws sts get-caller-identity 2>&1",
|
|
532
|
+
authFix: "aws configure",
|
|
533
|
+
dependencies: ["Homebrew"],
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
name: "Railway CLI",
|
|
537
|
+
install: "npm install -g @railway/cli",
|
|
538
|
+
upgrade: "npm update -g @railway/cli",
|
|
539
|
+
uninstall: "npm uninstall -g @railway/cli",
|
|
540
|
+
check: "command -v railway",
|
|
541
|
+
versionCmd: "railway --version 2>/dev/null",
|
|
542
|
+
authCheck: "railway whoami 2>&1",
|
|
543
|
+
authFix: "railway login",
|
|
544
|
+
dependencies: ["Node.js"],
|
|
545
|
+
},
|
|
546
|
+
{
|
|
547
|
+
name: "Supabase CLI",
|
|
548
|
+
install: {
|
|
549
|
+
darwin: "brew install supabase/tap/supabase",
|
|
550
|
+
linux: "npm install -g supabase",
|
|
551
|
+
},
|
|
552
|
+
upgrade: {
|
|
553
|
+
darwin: "brew upgrade supabase/tap/supabase",
|
|
554
|
+
linux: "npm update -g supabase",
|
|
555
|
+
},
|
|
556
|
+
uninstall: {
|
|
557
|
+
darwin: "brew uninstall supabase",
|
|
558
|
+
linux: "npm uninstall -g supabase",
|
|
559
|
+
},
|
|
560
|
+
check: "command -v supabase",
|
|
561
|
+
versionCmd: "supabase --version 2>/dev/null",
|
|
562
|
+
authCheck: "supabase projects list 2>&1",
|
|
563
|
+
authFix: "supabase login",
|
|
564
|
+
dependencies: ["Homebrew"],
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
name: "Firebase CLI",
|
|
568
|
+
install: "npm install -g firebase-tools",
|
|
569
|
+
upgrade: "npm update -g firebase-tools",
|
|
570
|
+
uninstall: "npm uninstall -g firebase-tools",
|
|
571
|
+
check: "command -v firebase",
|
|
572
|
+
versionCmd: "firebase --version 2>/dev/null",
|
|
573
|
+
authCheck: "firebase login:list 2>&1",
|
|
574
|
+
authFix: "firebase login",
|
|
575
|
+
dependencies: ["Node.js"],
|
|
576
|
+
},
|
|
577
|
+
// 网络 & 隧道
|
|
578
|
+
{
|
|
579
|
+
name: "ngrok",
|
|
580
|
+
install: {
|
|
581
|
+
darwin: "brew install ngrok/ngrok/ngrok",
|
|
582
|
+
linux: "curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && echo 'deb https://ngrok-agent.s3.amazonaws.com buster main' | sudo tee /etc/apt/sources.list.d/ngrok.list && sudo apt-get update && sudo apt-get install -y ngrok",
|
|
583
|
+
},
|
|
584
|
+
upgrade: {
|
|
585
|
+
darwin: "brew upgrade ngrok/ngrok/ngrok",
|
|
586
|
+
linux: "sudo apt-get update && sudo apt-get install -y ngrok",
|
|
587
|
+
},
|
|
588
|
+
uninstall: {
|
|
589
|
+
darwin: "brew uninstall ngrok",
|
|
590
|
+
linux: "sudo apt-get remove -y ngrok",
|
|
591
|
+
},
|
|
592
|
+
check: "command -v ngrok",
|
|
593
|
+
versionCmd: "ngrok --version 2>/dev/null",
|
|
594
|
+
authCheck: "ngrok config check 2>&1",
|
|
595
|
+
authFix: "ngrok config add-authtoken",
|
|
596
|
+
dependencies: ["Homebrew"],
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
name: "cloudflared",
|
|
600
|
+
install: {
|
|
601
|
+
darwin: "brew install cloudflare/cloudflare/cloudflared",
|
|
602
|
+
linux: "curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o /tmp/cloudflared.deb && sudo dpkg -i /tmp/cloudflared.deb && rm /tmp/cloudflared.deb",
|
|
603
|
+
},
|
|
604
|
+
upgrade: {
|
|
605
|
+
darwin: "brew upgrade cloudflare/cloudflare/cloudflared",
|
|
606
|
+
linux: "curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o /tmp/cloudflared.deb && sudo dpkg -i /tmp/cloudflared.deb && rm /tmp/cloudflared.deb",
|
|
607
|
+
},
|
|
608
|
+
uninstall: {
|
|
609
|
+
darwin: "brew uninstall cloudflared",
|
|
610
|
+
linux: "sudo apt-get remove -y cloudflared",
|
|
611
|
+
},
|
|
612
|
+
check: "command -v cloudflared",
|
|
613
|
+
versionCmd: "cloudflared --version 2>/dev/null",
|
|
614
|
+
dependencies: ["Homebrew"],
|
|
615
|
+
},
|
|
616
|
+
// 云平台 CLI
|
|
617
|
+
{
|
|
618
|
+
name: "Google Cloud CLI",
|
|
619
|
+
install: {
|
|
620
|
+
darwin: "brew install --cask google-cloud-sdk",
|
|
621
|
+
linux: "curl https://sdk.cloud.google.com | bash -s -- --disable-prompts && echo 'source ~/google-cloud-sdk/path.bash.inc' >> ~/.bashrc",
|
|
622
|
+
},
|
|
623
|
+
upgrade: {
|
|
624
|
+
darwin: "brew upgrade --cask google-cloud-sdk",
|
|
625
|
+
linux: "gcloud components update --quiet",
|
|
626
|
+
},
|
|
627
|
+
uninstall: {
|
|
628
|
+
darwin: "brew uninstall --cask google-cloud-sdk",
|
|
629
|
+
linux: "rm -rf ~/google-cloud-sdk && sed -i '/google-cloud-sdk/d' ~/.bashrc",
|
|
630
|
+
},
|
|
631
|
+
check: "command -v gcloud",
|
|
632
|
+
versionCmd: "gcloud --version 2>/dev/null | head -1",
|
|
633
|
+
authCheck: "gcloud auth list 2>&1 | head -5",
|
|
634
|
+
authFix: "gcloud auth login",
|
|
635
|
+
dependencies: ["Homebrew"],
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
name: "Azure CLI",
|
|
639
|
+
install: {
|
|
640
|
+
darwin: "brew install azure-cli",
|
|
641
|
+
linux: "curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash",
|
|
642
|
+
},
|
|
643
|
+
upgrade: {
|
|
644
|
+
darwin: "brew upgrade azure-cli",
|
|
645
|
+
linux: "sudo apt-get update && sudo apt-get install -y azure-cli",
|
|
646
|
+
},
|
|
647
|
+
uninstall: {
|
|
648
|
+
darwin: "brew uninstall azure-cli",
|
|
649
|
+
linux: "sudo apt-get remove -y azure-cli",
|
|
650
|
+
},
|
|
651
|
+
check: "command -v az",
|
|
652
|
+
versionCmd: "az --version 2>/dev/null | head -1",
|
|
653
|
+
authCheck: "az account show 2>&1 | head -5",
|
|
654
|
+
authFix: "az login",
|
|
655
|
+
dependencies: ["Homebrew"],
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
name: "Fly.io CLI",
|
|
659
|
+
install: {
|
|
660
|
+
darwin: "brew install flyctl",
|
|
661
|
+
linux: "curl -L https://fly.io/install.sh | sh",
|
|
662
|
+
},
|
|
663
|
+
upgrade: {
|
|
664
|
+
darwin: "brew upgrade flyctl",
|
|
665
|
+
linux: "flyctl version update",
|
|
666
|
+
},
|
|
667
|
+
uninstall: {
|
|
668
|
+
darwin: "brew uninstall flyctl",
|
|
669
|
+
linux: "rm -rf ~/.fly",
|
|
670
|
+
},
|
|
671
|
+
check: "command -v flyctl || command -v fly",
|
|
672
|
+
versionCmd: "flyctl version 2>/dev/null | head -1",
|
|
673
|
+
authCheck: "flyctl auth whoami 2>&1",
|
|
674
|
+
authFix: "flyctl auth login",
|
|
675
|
+
dependencies: ["Homebrew"],
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
name: "Heroku CLI",
|
|
679
|
+
install: {
|
|
680
|
+
darwin: "brew tap heroku/brew && brew install heroku",
|
|
681
|
+
linux: "curl https://cli-assets.heroku.com/install.sh | sh",
|
|
682
|
+
},
|
|
683
|
+
upgrade: {
|
|
684
|
+
darwin: "brew upgrade heroku",
|
|
685
|
+
linux: "curl https://cli-assets.heroku.com/install.sh | sh",
|
|
686
|
+
},
|
|
687
|
+
uninstall: {
|
|
688
|
+
darwin: "brew uninstall heroku",
|
|
689
|
+
linux: "sudo rm -rf /usr/local/lib/heroku /usr/local/bin/heroku",
|
|
690
|
+
},
|
|
691
|
+
check: "command -v heroku",
|
|
692
|
+
versionCmd: "heroku --version 2>/dev/null | head -1",
|
|
693
|
+
authCheck: "heroku auth:whoami 2>&1",
|
|
694
|
+
authFix: "heroku auth:login",
|
|
695
|
+
dependencies: ["Homebrew"],
|
|
696
|
+
},
|
|
697
|
+
// 通用效率工具
|
|
698
|
+
{
|
|
699
|
+
name: "jq",
|
|
700
|
+
install: {
|
|
701
|
+
darwin: "brew install jq",
|
|
702
|
+
linux: "sudo apt-get update && sudo apt-get install -y jq",
|
|
703
|
+
},
|
|
704
|
+
upgrade: {
|
|
705
|
+
darwin: "brew upgrade jq",
|
|
706
|
+
linux: "sudo apt-get update && sudo apt-get install -y jq",
|
|
707
|
+
},
|
|
708
|
+
uninstall: {
|
|
709
|
+
darwin: "brew uninstall jq",
|
|
710
|
+
linux: "sudo apt-get remove -y jq",
|
|
711
|
+
},
|
|
712
|
+
check: "command -v jq",
|
|
713
|
+
versionCmd: "jq --version",
|
|
714
|
+
dependencies: ["Homebrew"],
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
name: "httpie",
|
|
718
|
+
install: {
|
|
719
|
+
darwin: "brew install httpie",
|
|
720
|
+
linux: "sudo apt-get update && sudo apt-get install -y httpie",
|
|
721
|
+
},
|
|
722
|
+
upgrade: {
|
|
723
|
+
darwin: "brew upgrade httpie",
|
|
724
|
+
linux: "sudo apt-get update && sudo apt-get install -y httpie",
|
|
725
|
+
},
|
|
726
|
+
uninstall: {
|
|
727
|
+
darwin: "brew uninstall httpie",
|
|
728
|
+
linux: "sudo apt-get remove -y httpie",
|
|
729
|
+
},
|
|
730
|
+
check: "command -v http",
|
|
731
|
+
versionCmd: "http --version 2>/dev/null | head -1",
|
|
732
|
+
dependencies: ["Homebrew"],
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
name: "tree",
|
|
736
|
+
install: {
|
|
737
|
+
darwin: "brew install tree",
|
|
738
|
+
linux: "sudo apt-get update && sudo apt-get install -y tree",
|
|
739
|
+
},
|
|
740
|
+
upgrade: {
|
|
741
|
+
darwin: "brew upgrade tree",
|
|
742
|
+
linux: "sudo apt-get update && sudo apt-get install -y tree",
|
|
743
|
+
},
|
|
744
|
+
uninstall: {
|
|
745
|
+
darwin: "brew uninstall tree",
|
|
746
|
+
linux: "sudo apt-get remove -y tree",
|
|
747
|
+
},
|
|
748
|
+
check: "command -v tree",
|
|
749
|
+
versionCmd: "tree --version 2>/dev/null | head -1",
|
|
750
|
+
dependencies: ["Homebrew"],
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
name: "bat",
|
|
754
|
+
install: {
|
|
755
|
+
darwin: "brew install bat",
|
|
756
|
+
linux: "sudo apt-get update && sudo apt-get install -y bat",
|
|
757
|
+
},
|
|
758
|
+
upgrade: {
|
|
759
|
+
darwin: "brew upgrade bat",
|
|
760
|
+
linux: "sudo apt-get update && sudo apt-get install -y bat",
|
|
761
|
+
},
|
|
762
|
+
uninstall: {
|
|
763
|
+
darwin: "brew uninstall bat",
|
|
764
|
+
linux: "sudo apt-get remove -y bat",
|
|
765
|
+
},
|
|
766
|
+
check: "command -v bat",
|
|
767
|
+
versionCmd: "bat --version 2>/dev/null | head -1",
|
|
768
|
+
dependencies: ["Homebrew"],
|
|
769
|
+
},
|
|
770
|
+
{
|
|
771
|
+
name: "watchman",
|
|
772
|
+
install: {
|
|
773
|
+
darwin: "brew install watchman",
|
|
774
|
+
linux: "sudo apt-get update && sudo apt-get install -y watchman",
|
|
775
|
+
},
|
|
776
|
+
upgrade: {
|
|
777
|
+
darwin: "brew upgrade watchman",
|
|
778
|
+
linux: "sudo apt-get update && sudo apt-get install -y watchman",
|
|
779
|
+
},
|
|
780
|
+
uninstall: {
|
|
781
|
+
darwin: "brew uninstall watchman",
|
|
782
|
+
linux: "sudo apt-get remove -y watchman",
|
|
783
|
+
},
|
|
784
|
+
check: "command -v watchman",
|
|
785
|
+
versionCmd: "watchman --version 2>/dev/null",
|
|
786
|
+
dependencies: ["Homebrew"],
|
|
787
|
+
},
|
|
788
|
+
// 容器 & 编排
|
|
789
|
+
{
|
|
790
|
+
name: "kubectl",
|
|
791
|
+
install: {
|
|
792
|
+
darwin: "brew install kubectl",
|
|
793
|
+
linux: "curl -LO \"https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl\" && sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl && rm kubectl",
|
|
794
|
+
},
|
|
795
|
+
upgrade: {
|
|
796
|
+
darwin: "brew upgrade kubectl",
|
|
797
|
+
linux: "curl -LO \"https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl\" && sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl && rm kubectl",
|
|
798
|
+
},
|
|
799
|
+
uninstall: {
|
|
800
|
+
darwin: "brew uninstall kubectl",
|
|
801
|
+
linux: "sudo rm -f /usr/local/bin/kubectl",
|
|
802
|
+
},
|
|
803
|
+
check: "command -v kubectl",
|
|
804
|
+
versionCmd: "kubectl version --client --short 2>/dev/null || kubectl version --client 2>&1 | head -1",
|
|
805
|
+
authCheck: "kubectl cluster-info 2>&1 | head -1",
|
|
806
|
+
authFix: "kubectl config set-cluster",
|
|
807
|
+
dependencies: ["Homebrew"],
|
|
808
|
+
},
|
|
809
|
+
{
|
|
810
|
+
name: "Terraform",
|
|
811
|
+
install: {
|
|
812
|
+
darwin: "brew install hashicorp/tap/terraform",
|
|
813
|
+
linux: "curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg && echo 'deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main' | sudo tee /etc/apt/sources.list.d/hashicorp.list && sudo apt-get update && sudo apt-get install -y terraform",
|
|
814
|
+
},
|
|
815
|
+
upgrade: {
|
|
816
|
+
darwin: "brew upgrade hashicorp/tap/terraform",
|
|
817
|
+
linux: "sudo apt-get update && sudo apt-get install -y terraform",
|
|
818
|
+
},
|
|
819
|
+
uninstall: {
|
|
820
|
+
darwin: "brew uninstall terraform",
|
|
821
|
+
linux: "sudo apt-get remove -y terraform",
|
|
822
|
+
},
|
|
823
|
+
check: "command -v terraform",
|
|
824
|
+
versionCmd: "terraform --version 2>/dev/null | head -1",
|
|
825
|
+
dependencies: ["Homebrew"],
|
|
826
|
+
},
|
|
827
|
+
// 数据库客户端
|
|
828
|
+
{
|
|
829
|
+
name: "Redis CLI",
|
|
830
|
+
install: {
|
|
831
|
+
darwin: "brew install redis",
|
|
832
|
+
linux: "sudo apt-get update && sudo apt-get install -y redis-tools",
|
|
833
|
+
},
|
|
834
|
+
upgrade: {
|
|
835
|
+
darwin: "brew upgrade redis",
|
|
836
|
+
linux: "sudo apt-get update && sudo apt-get install -y redis-tools",
|
|
837
|
+
},
|
|
838
|
+
uninstall: {
|
|
839
|
+
darwin: "brew uninstall redis",
|
|
840
|
+
linux: "sudo apt-get remove -y redis-tools",
|
|
841
|
+
},
|
|
842
|
+
check: "command -v redis-cli",
|
|
843
|
+
versionCmd: "redis-cli --version",
|
|
844
|
+
dependencies: ["Homebrew"],
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
name: "PostgreSQL",
|
|
848
|
+
install: {
|
|
849
|
+
darwin: "brew install postgresql@16",
|
|
850
|
+
linux: "sudo apt-get update && sudo apt-get install -y postgresql-client",
|
|
851
|
+
},
|
|
852
|
+
upgrade: {
|
|
853
|
+
darwin: "brew upgrade postgresql@16",
|
|
854
|
+
linux: "sudo apt-get update && sudo apt-get install -y postgresql-client",
|
|
855
|
+
},
|
|
856
|
+
uninstall: {
|
|
857
|
+
darwin: "brew uninstall postgresql@16",
|
|
858
|
+
linux: "sudo apt-get remove -y postgresql-client",
|
|
859
|
+
},
|
|
860
|
+
check: "command -v psql",
|
|
861
|
+
versionCmd: "psql --version",
|
|
862
|
+
dependencies: ["Homebrew"],
|
|
863
|
+
},
|
|
864
|
+
// AI & LLM
|
|
865
|
+
{
|
|
866
|
+
name: "Ollama",
|
|
867
|
+
install: {
|
|
868
|
+
darwin: "brew install --cask ollama",
|
|
869
|
+
linux: "curl -fsSL https://ollama.com/install.sh | sh",
|
|
870
|
+
},
|
|
871
|
+
upgrade: {
|
|
872
|
+
darwin: "brew upgrade --cask ollama",
|
|
873
|
+
linux: "curl -fsSL https://ollama.com/install.sh | sh",
|
|
874
|
+
},
|
|
875
|
+
uninstall: {
|
|
876
|
+
darwin: "brew uninstall --cask ollama",
|
|
877
|
+
linux: "sudo rm -f /usr/local/bin/ollama",
|
|
878
|
+
},
|
|
879
|
+
check: "command -v ollama",
|
|
880
|
+
versionCmd: "ollama --version 2>/dev/null",
|
|
881
|
+
dependencies: ["Homebrew"],
|
|
882
|
+
},
|
|
313
883
|
{
|
|
314
884
|
name: "OpenClaw",
|
|
315
885
|
install: "bash -c 'set -e; if command -v curl >/dev/null 2>&1; then curl -fsSL https://openclaw.ai/install.sh | bash; elif command -v npm >/dev/null 2>&1; then npm install -g openclaw@latest; elif command -v pnpm >/dev/null 2>&1; then pnpm add -g openclaw@latest; else echo \"缺少 curl/npm/pnpm,无法安装 OpenClaw\"; exit 1; fi'",
|