@wwkit/opm 1.0.2 → 1.0.4
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/README.md +194 -11
- package/bin/index.js +23 -0
- package/docs/managers/git.md +103 -0
- package/docs/managers/proc.md +77 -0
- package/docs/managers/uv.md +9 -3
- package/docs/opm.html +154 -11
- package/docs/packages/opencode.md +46 -15
- package/docs/test/linux-environment-test-report.md +147 -0
- package/package.json +3 -2
- package/src/cli/groups/docker.js +10 -5
- package/src/cli/groups/homebrew.js +9 -5
- package/src/cli/groups/nvm.js +6 -2
- package/src/cli/groups/ping.js +461 -0
- package/src/cli/groups/proc.js +232 -0
- package/src/cli/groups/uv.js +9 -8
- package/src/cli/groups/version-manager.js +34 -8
- package/src/cli/index.js +10 -0
- package/src/config.json5 +84 -7
- package/src/harnesses/base.js +34 -0
- package/src/harnesses/opencode/index.js +56 -0
- package/src/index.js +6 -0
- package/src/managers/brew.js +6 -6
- package/src/managers/docker.js +10 -7
- package/src/managers/node.js +8 -2
- package/src/managers/proc.js +424 -0
- package/src/managers/python.js +7 -4
- package/src/presets.js +3 -0
- package/src/tools/ftp/index.js +151 -16
- package/src/tools/git/config.js +374 -0
- package/src/tools/git/index.js +378 -0
- package/src/tools/share/.htaccess +20 -0
- package/src/tools/share/client.js +172 -0
- package/src/tools/share/index.js +735 -0
- package/src/tools/share/server.js +430 -0
- package/src/tools/share/server.php +452 -0
- package/src/tools/webwork/index.js +558 -0
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
- 合并读取:内置默认(`src/config.json5`)→ 用户文件 → `OPM_CONFIG_CONTENT` 环境变量注入层(最高优先级);字符串中 `{env:XXX}` 占位符替换为环境变量
|
|
8
8
|
- `proxy` — 代理预设 + `active`(当前激活代理;默认空 = 不使用代理,可改为预设 key 或完整 URL。命令行 `-p/--proxy` 传入时优先使用传入值)
|
|
9
|
-
- `npm` / `pip` / `dnf` / `apt` / `brew` / `composer` / `bun` / `nvm` / `node` / `phpenv` / `php` / `python` 的 `registry` — 镜像预设 + `active`(当前激活镜像)
|
|
9
|
+
- `npm` / `pip` / `dnf` / `apt` / `brew` / `composer` / `bun` / `nvm` / `node` / `phpenv` / `php` / `python` / `uv` / `docker` / `homebrew` 的 `registry` — 镜像预设 + `active`(当前激活镜像)
|
|
10
10
|
|
|
11
11
|
`active` 可以是预设 key(如 `"taobao"`),也可以是完整 URL:
|
|
12
12
|
|
|
@@ -51,14 +51,24 @@ pnpm opm <command> [args] [options]
|
|
|
51
51
|
| `brew <action>` | brew 包管理器(macOS / Homebrew) |
|
|
52
52
|
| `composer <action>` | composer 包管理器(PHP) |
|
|
53
53
|
| `bun <action>` | bun 包管理器(Bun runtime,npm 兼容源) |
|
|
54
|
+
| `winget <action>` | winget 包管理器(Windows) |
|
|
54
55
|
| `nvm <action>` | nvm 自身管理(安装/升级/卸载 nvm) |
|
|
55
56
|
| `node <action>` | node 版本管理(基于 nvm 安装/切换/卸载 Node.js 版本) |
|
|
56
57
|
| `phpenv <action>` | phpenv 自身管理(安装/升级/卸载 phpenv) |
|
|
57
58
|
| `php <action>` | php 版本管理(基于 phpenv 安装/切换/卸载 PHP 版本) |
|
|
58
59
|
| `uv <action>` | uv 自身管理(安装/升级/卸载 uv) |
|
|
59
60
|
| `python <action>` | python 版本管理(基于 uv 安装/切换/卸载 Python 版本) |
|
|
61
|
+
| `docker <action>` | Docker 自身管理(安装/升级/启停/open,含 daemon 状态) |
|
|
62
|
+
| `homebrew <action>` | Homebrew 自身管理(安装/升级/卸载 brew) |
|
|
63
|
+
| `wsl <action>` | WSL2 管理(安装/升级/列表/启停/打开发行版) |
|
|
64
|
+
| `cft <action>` | Chrome for Testing 安装器(chrome + chromedriver) |
|
|
65
|
+
| `git <action>` | git 安装/配置/diff 导出导入 |
|
|
66
|
+
| `proc <action>` | 进程与系统信息管理(列表/搜索/终止/端口/进程树) |
|
|
67
|
+
| `ftp <action>` | FTP 文件管理(上传/rsync/下载) |
|
|
68
|
+
| `ensure <runtime> [version]` | 确保运行时已安装(node/php/python) |
|
|
69
|
+
| `ping <host|proxy|registry>` | 验证主机、代理或所有 registry 的可访问性 |
|
|
60
70
|
| `config [section]` | 查看常用配置(proxy + 各 registry 段,段名动态生成) |
|
|
61
|
-
| `opencode <action>` | opencode
|
|
71
|
+
| `opencode <action>` | opencode 运维命令(安装/升级/清理/env/open) |
|
|
62
72
|
|
|
63
73
|
## Managers
|
|
64
74
|
|
|
@@ -75,7 +85,7 @@ pnpm opm <command> [args] [options]
|
|
|
75
85
|
| `node` | node 版本管理(基于 nvm,install/use/uninstall Node.js 版本,镜像 via `NVM_NODEJS_ORG_MIRROR`) |
|
|
76
86
|
| `phpenv` | phpenv 自身管理(安装/升级/卸载 phpenv + php-build 插件,git clone + shell profile) |
|
|
77
87
|
| `php` | php 版本管理(基于 phpenv,install/global 切换 PHP 版本,镜像 via `PHP_BUILD_MIRROR_URL`) |
|
|
78
|
-
| `uv` | uv 自身管理(安装/升级/卸载 uv,curl
|
|
88
|
+
| `uv` | uv 自身管理(安装/升级/卸载 uv,curl 安装脚本走 `uv.registry.active` + `uv self update`) |
|
|
79
89
|
| `python` | python 版本管理(基于 uv,install/pin/uninstall Python 版本,镜像 via `UV_PYTHON_INSTALL_MIRROR`) |
|
|
80
90
|
|
|
81
91
|
## Actions
|
|
@@ -101,12 +111,23 @@ pnpm opm <command> [args] [options]
|
|
|
101
111
|
|
|
102
112
|
| 命令 | 说明 |
|
|
103
113
|
|------|------|
|
|
114
|
+
| `opencode version` | 已安装版本 |
|
|
115
|
+
| `opencode installed` | 检查是否已安装 |
|
|
116
|
+
| `opencode install` | 安装(使用 opm npm 镜像 + proxy) |
|
|
117
|
+
| `opencode uninstall` | 卸载 |
|
|
118
|
+
| `opencode upgrade` | 升级(使用 opm npm 镜像 + proxy) |
|
|
119
|
+
| `opencode config` | 显示配置文件内容 |
|
|
120
|
+
| `opencode dir` | 显示 data/db/log/config 路径 |
|
|
121
|
+
| `opencode env` | 显示环境变量(OPENCODE_CONFIG_DIR / CONTENT) |
|
|
122
|
+
| `opencode open [-d <dir>]` | 在指定目录启动 TUI(默认 cwd),自动注入环境变量 |
|
|
104
123
|
| `opencode clear` | 清理过期会话并 VACUUM 压缩数据库(缺省 `-d 1`,只保留今天) |
|
|
105
124
|
| `opencode clear -d, --days <n>` | 保留最近 n 天(对齐本地零点,含今天) |
|
|
106
125
|
| `opencode clear -h, --hours <n>` | 保留最近 n 小时(滚动窗口) |
|
|
107
126
|
| `opencode clear -n, --num <n>` | 保留最新 n 个会话 |
|
|
108
127
|
| `opencode clear --dry-run` | 仅预览,不修改任何数据 |
|
|
109
128
|
| `opencode clear -y` | 跳过确认提示 |
|
|
129
|
+
| `opencode clear --backup` | 删除前备份数据库 |
|
|
130
|
+
| `opencode clear --db <path>` | 覆盖 opencode 数据库路径 |
|
|
110
131
|
|
|
111
132
|
保留策略参数(`--days` / `--hours` / `--num`)三选一,互斥。
|
|
112
133
|
|
|
@@ -317,12 +338,40 @@ opm php upgrade # 安装最新版本
|
|
|
317
338
|
|
|
318
339
|
```bash
|
|
319
340
|
opm uv version # 查看 uv 版本
|
|
320
|
-
opm uv
|
|
341
|
+
opm uv registry # 查询激活的安装脚本 URL
|
|
342
|
+
opm uv registry set <url|preset> # 设置安装脚本 URL(写 uv.registry.active)
|
|
343
|
+
opm uv registry presets # 列出可用镜像预设
|
|
344
|
+
opm uv install # 安装 uv(curl 执行 active 脚本 URL)
|
|
321
345
|
opm uv upgrade # 更新 uv(uv self update)
|
|
322
346
|
opm uv view # 检查 uv 是否已安装
|
|
323
347
|
opm uv uninstall # 卸载 uv
|
|
324
348
|
```
|
|
325
349
|
|
|
350
|
+
### docker
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
opm docker version # 查看 Docker 版本
|
|
354
|
+
opm docker registry # 查询激活的安装脚本 URL
|
|
355
|
+
opm docker registry set <url|preset> # 设置安装脚本 URL(写 docker.registry.active)
|
|
356
|
+
opm docker install # 安装 Docker(Linux 用 active 便捷脚本)
|
|
357
|
+
opm docker status # 查看 daemon 状态
|
|
358
|
+
opm docker start / stop / restart # 启停 daemon
|
|
359
|
+
opm docker dir # 查看数据目录
|
|
360
|
+
opm docker uninstall # 卸载 Docker
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### homebrew
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
opm homebrew version # 查看 Homebrew 版本
|
|
367
|
+
opm homebrew registry # 查询激活的安装脚本 URL
|
|
368
|
+
opm homebrew registry set <url|preset># 设置安装脚本 URL(写 homebrew.registry.active)
|
|
369
|
+
opm homebrew install # 安装 Homebrew(curl 执行 active 脚本 URL)
|
|
370
|
+
opm homebrew upgrade # 更新(brew update)
|
|
371
|
+
opm homebrew dir # 查看安装目录
|
|
372
|
+
opm homebrew uninstall # 卸载 Homebrew
|
|
373
|
+
```
|
|
374
|
+
|
|
326
375
|
### python
|
|
327
376
|
|
|
328
377
|
```bash
|
|
@@ -340,6 +389,111 @@ opm python upgrade # 安装最新版本
|
|
|
340
389
|
|
|
341
390
|
> `pip` 与 `python` 互不干扰:`opm pip` 直接调用 pip CLI;`opm python` 通过 uv 管版本;如需更快的 pip 替代,可直用 `uv pip`。
|
|
342
391
|
|
|
392
|
+
### git
|
|
393
|
+
|
|
394
|
+
```bash
|
|
395
|
+
opm git version # 查看已安装版本
|
|
396
|
+
opm git install # 安装 git(系统包管理器)
|
|
397
|
+
opm git upgrade # 升级 git
|
|
398
|
+
opm git init # 从 opm 配置初始化全局 git 配置
|
|
399
|
+
opm git config # 列出全局配置
|
|
400
|
+
opm git config pull.rebase true # 设置配置项
|
|
401
|
+
opm git user # 查看用户信息
|
|
402
|
+
opm git export mark # 查看当前 diff 基准
|
|
403
|
+
opm git export mark 0 # 标记当前 HEAD 为 diff 基准
|
|
404
|
+
opm git export mark 3af967b # 标记指定 commit
|
|
405
|
+
opm git export mark --unset # 删除基准
|
|
406
|
+
opm git export # 导出 diff(基准 -> HEAD)
|
|
407
|
+
opm git export -f 2 # 导出 diff(HEAD~2 -> HEAD)
|
|
408
|
+
opm git import file.diff # 导入 diff 文件
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
### proc
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
opm proc info # 系统信息(OS/CPU/内存/磁盘)
|
|
415
|
+
opm proc list # Top 10 进程(按内存)
|
|
416
|
+
opm proc list -n 20 -b cpu # Top 20 按 CPU 排序
|
|
417
|
+
opm proc search -n node # 搜索 node 进程
|
|
418
|
+
opm proc port # 所有监听端口
|
|
419
|
+
opm proc kill -i 1234 # 终止 PID 1234
|
|
420
|
+
opm proc kill -p 8080 -f -y # 强制终止 8080 端口进程
|
|
421
|
+
opm proc tree # 进程树
|
|
422
|
+
opm proc detail 1234 # PID 1234 详情
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
### wsl
|
|
426
|
+
|
|
427
|
+
```bash
|
|
428
|
+
opm wsl version # WSL 版本
|
|
429
|
+
opm wsl installed # 检查是否已安装
|
|
430
|
+
opm wsl install # 安装 WSL2
|
|
431
|
+
opm wsl install Ubuntu # 安装指定发行版
|
|
432
|
+
opm wsl list # 已安装发行版列表
|
|
433
|
+
opm wsl available # 可用发行版列表
|
|
434
|
+
opm wsl start Ubuntu # 启动发行版
|
|
435
|
+
opm wsl stop Ubuntu # 停止发行版
|
|
436
|
+
opm wsl open # 打开 WSL
|
|
437
|
+
opm wsl status # WSL 状态
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
### docker
|
|
441
|
+
|
|
442
|
+
```bash
|
|
443
|
+
opm docker version # Docker 版本
|
|
444
|
+
opm docker install # 安装 Docker
|
|
445
|
+
opm docker upgrade # 升级 Docker
|
|
446
|
+
opm docker status # daemon 状态
|
|
447
|
+
opm docker start / stop / restart # 启停 daemon
|
|
448
|
+
opm docker dir # 数据目录
|
|
449
|
+
opm docker uninstall # 卸载 Docker
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
### homebrew
|
|
453
|
+
|
|
454
|
+
```bash
|
|
455
|
+
opm homebrew version # Homebrew 版本
|
|
456
|
+
opm homebrew install # 安装 Homebrew
|
|
457
|
+
opm homebrew upgrade # 更新(brew update)
|
|
458
|
+
opm homebrew dir # 安装目录
|
|
459
|
+
opm homebrew uninstall # 卸载 Homebrew
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
### cft
|
|
463
|
+
|
|
464
|
+
```bash
|
|
465
|
+
opm cft version # 查看已安装版本
|
|
466
|
+
opm cft install # 安装 Chrome for Testing
|
|
467
|
+
opm cft status # 查看安装状态
|
|
468
|
+
opm cft clear # 清理安装文件
|
|
469
|
+
opm cft dir # 查看安装目录
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
### ftp
|
|
473
|
+
|
|
474
|
+
```bash
|
|
475
|
+
opm ftp connect # 测试 FTP 连接
|
|
476
|
+
opm ftp upload ./img.png # 上传文件
|
|
477
|
+
opm ftp upload ./img.png -n cover -s banner # 上传并重命名到子目录
|
|
478
|
+
opm ftp upload https://example.com/a.jpg -n cover.jpg # 从 URL 上传
|
|
479
|
+
opm ftp rsync ./webwork/ # 递归上传目录
|
|
480
|
+
opm ftp rsync ./webwork/ -s deploy -x "vendor/*" # 排除模式
|
|
481
|
+
opm ftp rsync ./webwork/ --dry-run # 预览
|
|
482
|
+
opm ftp rsync ./webwork/ --prune # 删除远端多余文件
|
|
483
|
+
opm ftp download 20260913/cover.jpg ./cover.jpg # 下载文件
|
|
484
|
+
opm ftp root # 远程根目录
|
|
485
|
+
opm ftp config # FTP 配置
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### ensure
|
|
489
|
+
|
|
490
|
+
```bash
|
|
491
|
+
opm ensure node # 确保 Node.js 已安装
|
|
492
|
+
opm ensure node 22 # 确保 Node.js 22 已安装
|
|
493
|
+
opm ensure php 8.3 # 确保 PHP 8.3 已安装
|
|
494
|
+
opm ensure python 3.12 # 确保 Python 3.12 已安装
|
|
495
|
+
```
|
|
496
|
+
|
|
343
497
|
### config
|
|
344
498
|
|
|
345
499
|
```bash
|
|
@@ -356,20 +510,49 @@ opm config nvm.registry # 查看 nvm registry 预设 + active
|
|
|
356
510
|
opm config node.registry # 查看 node registry 预设 + active
|
|
357
511
|
opm config phpenv.registry # 查看 phpenv registry 预设 + active
|
|
358
512
|
opm config php.registry # 查看 php registry 预设 + active
|
|
359
|
-
opm config python.registry
|
|
513
|
+
opm config python.registry # 查看 python registry 预设 + active
|
|
514
|
+
opm config uv.registry # 查看 uv registry 预设 + active
|
|
515
|
+
opm config docker.registry # 查看 docker registry 预设 + active
|
|
516
|
+
opm config homebrew.registry # 查看 homebrew registry 预设 + active
|
|
360
517
|
```
|
|
361
518
|
|
|
362
519
|
> `opm config [section]` 的可用段名由合并配置动态生成(每个 top-level 段 + 含 `registry` 的 `.registry` 子段),`opm config <未知段>` 会列出全部可用段。
|
|
363
520
|
|
|
521
|
+
### ping
|
|
522
|
+
|
|
523
|
+
```bash
|
|
524
|
+
opm ping 8.8.8.8 # Ping 指定 IP(默认精简数组)
|
|
525
|
+
opm ping proxyhm-hk.security.huawei.com # Ping 指定主机
|
|
526
|
+
opm ping proxy # Ping 当前 active 代理的主机
|
|
527
|
+
opm ping registry # Ping 所有工具 registry active 主机(并行)
|
|
528
|
+
opm ping source # 打印示例系统命令(npm active registry)
|
|
529
|
+
opm ping 8.8.8.8 -c 2 # 发送 2 个包
|
|
530
|
+
opm ping proxy -d # 输出完整 JSON
|
|
531
|
+
opm ping registry -d # 输出完整 JSON 数组
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
> 默认输出精简数组 `[{tool, address, proxy, reachable}]`;`-d/--detail` 输出完整 JSON(含 `sent`/`received`/`loss`/`rtt`/`raw` 等)。
|
|
535
|
+
> `opm ping proxy` 从 `proxy.active` 解析代理 URL,提取主机名后 ping。
|
|
536
|
+
> `opm ping registry` 遍历所有含 `registry` 配置的工具,并行 ping 各 active 地址的主机。
|
|
537
|
+
|
|
364
538
|
### opencode
|
|
365
539
|
|
|
366
540
|
```bash
|
|
367
|
-
opm opencode
|
|
368
|
-
opm opencode
|
|
369
|
-
opm opencode
|
|
370
|
-
opm opencode
|
|
371
|
-
opm opencode
|
|
372
|
-
opm opencode
|
|
541
|
+
opm opencode version # 查看已安装版本
|
|
542
|
+
opm opencode installed # 检查是否已安装
|
|
543
|
+
opm opencode install # 安装 opencode
|
|
544
|
+
opm opencode upgrade # 升级到最新
|
|
545
|
+
opm opencode config # 显示配置文件内容
|
|
546
|
+
opm opencode dir # 查看数据/日志/DB路径
|
|
547
|
+
opm opencode env # 查看环境变量
|
|
548
|
+
opm opencode open # 在当前目录启动 TUI
|
|
549
|
+
opm opencode open -d /path/to/project # 在指定目录启动 TUI
|
|
550
|
+
opm opencode clear # 只保留今天创建的会话
|
|
551
|
+
opm opencode clear -d 7 # 保留最近 7 天会话
|
|
552
|
+
opm opencode clear -h 24 # 保留最近 24 小时会话
|
|
553
|
+
opm opencode clear -n 10 # 保留最新 10 个会话
|
|
554
|
+
opm opencode clear --dry-run # 仅预览
|
|
555
|
+
opm opencode clear -y # 跳过确认直接执行
|
|
373
556
|
```
|
|
374
557
|
|
|
375
558
|
## npm scripts
|
package/bin/index.js
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
+
import fs from 'node:fs'
|
|
4
|
+
import path from 'node:path'
|
|
5
|
+
|
|
6
|
+
let dir = process.cwd()
|
|
7
|
+
for (let i = 0; i < 10; i++) {
|
|
8
|
+
const envPath = path.join(dir, '.env')
|
|
9
|
+
if (fs.existsSync(envPath)) {
|
|
10
|
+
for (const line of fs.readFileSync(envPath, 'utf8').split('\n')) {
|
|
11
|
+
const trimmed = line.trim()
|
|
12
|
+
if (!trimmed || trimmed.startsWith('#')) continue
|
|
13
|
+
const eq = trimmed.indexOf('=')
|
|
14
|
+
if (eq === -1) continue
|
|
15
|
+
const key = trimmed.slice(0, eq).trim()
|
|
16
|
+
const val = trimmed.slice(eq + 1).trim()
|
|
17
|
+
if (!(key in process.env)) process.env[key] = val
|
|
18
|
+
}
|
|
19
|
+
break
|
|
20
|
+
}
|
|
21
|
+
const parent = path.dirname(dir)
|
|
22
|
+
if (parent === dir) break
|
|
23
|
+
dir = parent
|
|
24
|
+
}
|
|
25
|
+
|
|
3
26
|
import { CLI } from '../src/cli/index.js'
|
|
4
27
|
|
|
5
28
|
const cli = new CLI()
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# git 命令对照
|
|
2
|
+
|
|
3
|
+
`@wwkit/opm` 统一命令管理 git 安装与配置、diff 导出/导入。
|
|
4
|
+
|
|
5
|
+
## 命令对照
|
|
6
|
+
|
|
7
|
+
| 统一命令 | 原始命令 | 说明 |
|
|
8
|
+
|---------|---------|------|
|
|
9
|
+
| `opm git version` | `git --version` | 查看已安装版本和路径 |
|
|
10
|
+
| `opm git install` | `dnf install -y git` / `apt-get install -y git` | 通过系统包管理器安装 git |
|
|
11
|
+
| `opm git uninstall` | `dnf remove -y git` / `apt-get remove -y git` | 通过系统包管理器卸载 git |
|
|
12
|
+
| `opm git upgrade` | `dnf upgrade -y git` / `apt-get install --only-upgrade -y git` | 通过系统包管理器升级 git |
|
|
13
|
+
| `opm git init` | `git config --global ...` | 从 opm 配置一键初始化全局 git 配置(user/ssl/pull.rebase) |
|
|
14
|
+
| `opm git config` | `git config --global --list` | 列出全局配置 |
|
|
15
|
+
| `opm git config <key>` | `git config --global --get <key>` | 查询单个配置项 |
|
|
16
|
+
| `opm git config <key> <value>` | `git config --global <key> <value>` | 设置配置项 |
|
|
17
|
+
| `opm git config --unset <key>` | `git config --global --unset <key>` | 删除配置项 |
|
|
18
|
+
| `opm git user` | `git config --global user.name` / `user.email` | 查看 user.name 和 user.email |
|
|
19
|
+
| `opm git user -n <name> -e <email>` | `git config --global user.name <name>` | 设置用户信息 |
|
|
20
|
+
| `opm git export mark` | `git rev-list -n 1 opm-diff-base` | 查看当前基准标记 |
|
|
21
|
+
| `opm git export mark 0` \| `HEAD` | `git tag opm-diff-base HEAD` | 标记当前 HEAD 为 diff 基准 |
|
|
22
|
+
| `opm git export mark <commit>` | `git tag opm-diff-base <commit>` | 标记指定 commit 为 diff 基准 |
|
|
23
|
+
| `opm git export mark --unset` | `git tag -d opm-diff-base` | 删除基准标记 |
|
|
24
|
+
| `opm git export` | `git diff <mark> HEAD` | 导出基准到 HEAD 的 diff(auto-commit 未提交变更) |
|
|
25
|
+
| `opm git export -f <n>` | `git diff HEAD~n HEAD` | 覆盖基准为 HEAD~n |
|
|
26
|
+
| `opm git export -f <ref>` | `git diff <ref> HEAD` | 覆盖基准为任意 ref |
|
|
27
|
+
| `opm git import <file>` | `git apply --reject <file>` | 导入 diff 文件到工作树 |
|
|
28
|
+
|
|
29
|
+
## 选项
|
|
30
|
+
|
|
31
|
+
| 选项 | 说明 |
|
|
32
|
+
|------|------|
|
|
33
|
+
| `-d, --dir <dir>` | git 仓库目录(默认 cwd) |
|
|
34
|
+
| `-p, --proxy <url>` | install/upgrade 时代理 |
|
|
35
|
+
| `--scope <global\|local\|system>` | config 作用域(默认 global) |
|
|
36
|
+
| `-n, --name <name>` | user: 用户名;export: diff 文件名 |
|
|
37
|
+
| `-e, --email <email>` | user: 用户邮箱 |
|
|
38
|
+
| `-o, --output <file>` | export: 输出文件路径 |
|
|
39
|
+
| `-f, --from <n>\|<ref>` | export: 覆盖基准 ref(数字=HEAD~n,字符串=ref) |
|
|
40
|
+
| `-f, --force` | init: 强制覆盖已有配置 |
|
|
41
|
+
| `--unset <key>` | config: 删除配置项 |
|
|
42
|
+
| `-h, --help` | 显示帮助 |
|
|
43
|
+
|
|
44
|
+
## 配置预设
|
|
45
|
+
|
|
46
|
+
opm 配置 `git` 段(`opm git init` 使用):
|
|
47
|
+
|
|
48
|
+
```json5
|
|
49
|
+
{
|
|
50
|
+
git: {
|
|
51
|
+
sslVerify: false, // http.sslVerify
|
|
52
|
+
user: { name: "", email: "" }, // user.name / user.email
|
|
53
|
+
pullRebase: false, // pull.rebase
|
|
54
|
+
},
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## diff 导出/导入流程
|
|
59
|
+
|
|
60
|
+
1. **修改前**:`opm git export mark 0` — 标记当前 HEAD 为基准
|
|
61
|
+
2. **修改后**:`opm git export` — 自动 commit 未提交变更,导出基准到 HEAD 的 diff
|
|
62
|
+
3. **传输**:将 diff 文件传到目标机器
|
|
63
|
+
4. **导入**:`opm git import <file>` — 在目标仓库应用 diff
|
|
64
|
+
|
|
65
|
+
默认输出文件:`<workdir>/.webwork/git/changes-<from-short>-to-<to-short>.diff`
|
|
66
|
+
|
|
67
|
+
## 示例
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# 安装/升级 git
|
|
71
|
+
opm git version # 查看已安装版本
|
|
72
|
+
opm git install # 安装 git
|
|
73
|
+
opm git upgrade # 升级 git
|
|
74
|
+
|
|
75
|
+
# 初始化配置
|
|
76
|
+
opm git init # 从 opm 配置初始化全局 git 配置
|
|
77
|
+
opm git init -f # 强制覆盖已有配置
|
|
78
|
+
|
|
79
|
+
# 配置管理
|
|
80
|
+
opm git config # 列出全局配置
|
|
81
|
+
opm git config pull.rebase true # 设置 pull.rebase
|
|
82
|
+
opm git config --unset pull.rebase # 删除配置项
|
|
83
|
+
opm git config --scope local # 操作本地配置
|
|
84
|
+
|
|
85
|
+
# 用户信息
|
|
86
|
+
opm git user # 查看当前用户信息
|
|
87
|
+
opm git user -n "John" -e "john@example.com" # 设置用户信息
|
|
88
|
+
|
|
89
|
+
# diff 导出
|
|
90
|
+
opm git export mark # 查看当前基准
|
|
91
|
+
opm git export mark 0 # 标记当前 HEAD 为基准
|
|
92
|
+
opm git export mark HEAD # 标记当前 HEAD 为基准
|
|
93
|
+
opm git export mark 3af967b # 标记指定 commit 为基准
|
|
94
|
+
opm git export mark --unset # 删除基准
|
|
95
|
+
opm git export # 导出 diff(基准 -> HEAD)
|
|
96
|
+
opm git export -f 2 # 导出 diff(HEAD~2 -> HEAD)
|
|
97
|
+
opm git export -n feature # 导出为 feature.diff
|
|
98
|
+
opm git export -d /path/to/repo # 指定仓库目录
|
|
99
|
+
|
|
100
|
+
# diff 导入
|
|
101
|
+
opm git import changes-abc-to-def.diff # 导入 diff 文件
|
|
102
|
+
opm git import file.diff -d /repo # 导入到指定仓库
|
|
103
|
+
```
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# proc 命令对照
|
|
2
|
+
|
|
3
|
+
`@wwkit/opm` 统一命令管理系统信息与进程管理。
|
|
4
|
+
|
|
5
|
+
## 命令对照
|
|
6
|
+
|
|
7
|
+
| 统一命令 | 原始命令 | 说明 |
|
|
8
|
+
|---------|---------|------|
|
|
9
|
+
| `opm proc info` | — | 显示系统信息(OS/CPU/内存/磁盘/运行时间) |
|
|
10
|
+
| `opm proc list` | `ps aux --sort=-%mem` | 列出按内存排序的 Top N 进程(默认 10) |
|
|
11
|
+
| `opm proc list -b cpu` | `ps aux --sort=-%cpu` | 列出按 CPU 排序的进程 |
|
|
12
|
+
| `opm proc search -n <name>` | `ps aux \| grep <name>` | 按名称模糊搜索进程 |
|
|
13
|
+
| `opm proc search -n <name> --exact` | — | 精确匹配进程名 |
|
|
14
|
+
| `opm proc search -n <name> -p <port>` | — | 按名称 + 端口搜索 |
|
|
15
|
+
| `opm proc port` | `netstat -tlnp` | 列出所有监听端口及对应进程 |
|
|
16
|
+
| `opm proc port -p <port>` | `netstat -tlnp \| grep <port>` | 查询指定端口 |
|
|
17
|
+
| `opm proc kill -i <pid>` | `kill <pid>` | 按 PID 终止进程(SIGTERM) |
|
|
18
|
+
| `opm proc kill -p <port>` | — | 按端口终止进程 |
|
|
19
|
+
| `opm proc kill -n <name>` | `pkill <name>` | 按名称终止进程 |
|
|
20
|
+
| `opm proc kill -i <pid> -f` | `kill -9 <pid>` | 强制终止(SIGKILL) |
|
|
21
|
+
| `opm proc tree` | `pstree` | 显示进程树(所有顶层进程) |
|
|
22
|
+
| `opm proc tree <pid>` | `pstree -p <pid>` | 显示指定 PID 的进程树 |
|
|
23
|
+
| `opm proc detail <pid>` | `ps -p <pid> -o ...` | 显示指定 PID 的详细信息 |
|
|
24
|
+
|
|
25
|
+
## 选项
|
|
26
|
+
|
|
27
|
+
| 选项 | 说明 |
|
|
28
|
+
|------|------|
|
|
29
|
+
| `-n, --count <n>` | list: 进程数量(默认 10) |
|
|
30
|
+
| `-n, --name <name>` | search/kill: 进程名称模式(默认模糊匹配) |
|
|
31
|
+
| `-b, --by <mem\|cpu>` | list: 排序方式(默认 mem) |
|
|
32
|
+
| `-p, --port <port>` | search/kill/port: 端口号 |
|
|
33
|
+
| `-i, --id <pid>` | kill: 进程 ID |
|
|
34
|
+
| `--exact` | search: 精确匹配(默认模糊) |
|
|
35
|
+
| `-f, --force` | kill: 使用 SIGKILL 替代 SIGTERM |
|
|
36
|
+
| `-y, --yes` | kill: 跳过确认提示 |
|
|
37
|
+
| `-h, --help` | 显示帮助 |
|
|
38
|
+
|
|
39
|
+
## 实现说明
|
|
40
|
+
|
|
41
|
+
- `src/managers/proc.js` — systeminformation 封装 + netstat 端口映射 + 进程操作
|
|
42
|
+
- `src/cli/groups/proc.js` — ProcGroup 命令组路由
|
|
43
|
+
- 端口映射优先使用 `systeminformation.networkConnections()`,回退 `netstat -tlnp`
|
|
44
|
+
- 内存值从 KB 转换为 MB(`memRss / 1024`)
|
|
45
|
+
|
|
46
|
+
## 示例
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# 系统信息
|
|
50
|
+
opm proc info # OS/CPU/内存/磁盘/运行时间
|
|
51
|
+
|
|
52
|
+
# 进程列表
|
|
53
|
+
opm proc list # Top 10 进程(按内存)
|
|
54
|
+
opm proc list -n 20 # Top 20 进程
|
|
55
|
+
opm proc list -b cpu # 按 CPU 排序
|
|
56
|
+
|
|
57
|
+
# 搜索
|
|
58
|
+
opm proc search -n node # 模糊搜索 node 进程
|
|
59
|
+
opm proc search -n node --exact # 精确匹配
|
|
60
|
+
opm proc search -n node -p 3000 # 搜索 node 进程 + 端口 3000
|
|
61
|
+
|
|
62
|
+
# 端口
|
|
63
|
+
opm proc port # 所有监听端口
|
|
64
|
+
opm proc port -p 8080 # 查询 8080 端口
|
|
65
|
+
|
|
66
|
+
# 终止
|
|
67
|
+
opm proc kill -i 1234 # 终止 PID 1234
|
|
68
|
+
opm proc kill -p 8080 -f -y # 强制终止 8080 端口的进程
|
|
69
|
+
opm proc kill -n node -y # 终止所有 node 进程
|
|
70
|
+
|
|
71
|
+
# 进程树
|
|
72
|
+
opm proc tree # 所有顶层进程树
|
|
73
|
+
opm proc tree 1234 # PID 1234 的进程树
|
|
74
|
+
|
|
75
|
+
# 详情
|
|
76
|
+
opm proc detail 1234 # PID 1234 的详细信息
|
|
77
|
+
```
|
package/docs/managers/uv.md
CHANGED
|
@@ -9,19 +9,25 @@ uv 是 Astral 出品的快速 Python 包/版本管理器(Rust 实现),替
|
|
|
9
9
|
| 统一命令 | 原始命令 | 说明 |
|
|
10
10
|
|---------|---------|------|
|
|
11
11
|
| `opm uv version` | `uv --version` | 查看 uv 版本 |
|
|
12
|
-
| `opm uv
|
|
12
|
+
| `opm uv registry` | 读 `~/.config/opm/config.json5` 的 `uv.registry.active` | 查询激活的安装脚本 URL |
|
|
13
|
+
| `opm uv registry set <url\|preset>` | 写 `~/.config/opm/config.json5` 的 `uv.registry.active` | 设置激活安装脚本 URL(支持预设名) |
|
|
14
|
+
| `opm uv registry presets` | — | 列出可用镜像预设 |
|
|
15
|
+
| `opm uv install` | `curl -LsSf <active> \| sh` | 安装 uv(脚本 URL 来自 `uv.registry.active`) |
|
|
13
16
|
| `opm uv upgrade` | `uv self update` | 更新 uv |
|
|
14
17
|
| `opm uv uninstall` | `rm ~/.local/bin/uv` + `rm -rf ~/.local/share/uv` | 卸载 uv |
|
|
15
18
|
| `opm uv dir` | 返回 uv 安装目录 |
|
|
16
19
|
|
|
17
|
-
> uv
|
|
20
|
+
> 安装脚本 URL 通过 `uv.registry.active` 配置(`opm uv registry set <url>`);Windows 仍使用官方 `install.ps1`。
|
|
18
21
|
|
|
19
22
|
## 示例
|
|
20
23
|
|
|
21
24
|
```bash
|
|
22
25
|
opm uv version
|
|
26
|
+
opm uv registry
|
|
27
|
+
opm uv registry presets
|
|
28
|
+
opm uv registry set official
|
|
23
29
|
opm uv install
|
|
24
30
|
opm uv upgrade
|
|
25
31
|
opm uv dir
|
|
26
32
|
opm uv uninstall
|
|
27
|
-
```
|
|
33
|
+
```
|