@wwkit/opm 1.0.2 → 1.0.3

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 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 运维命令(clear 清理过期会话) |
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 安装 + `uv self update`) |
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 install # 安装 uv(curl 安装脚本)
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 # 查看 python registry 预设 + active
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 clear # 只保留今天创建的会话
368
- opm opencode clear -d 7 # 保留最近 7 天会话
369
- opm opencode clear -h 24 # 保留最近 24 小时会话
370
- opm opencode clear -n 10 # 保留最新 10 个会话
371
- opm opencode clear --dry-run # 仅预览
372
- opm opencode clear -y # 跳过确认直接执行
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
+ ```
@@ -9,19 +9,25 @@ uv 是 Astral 出品的快速 Python 包/版本管理器(Rust 实现),替
9
9
  | 统一命令 | 原始命令 | 说明 |
10
10
  |---------|---------|------|
11
11
  | `opm uv version` | `uv --version` | 查看 uv 版本 |
12
- | `opm uv install` | `curl -LsSf https://astral.sh/uv/install.sh \| sh` | 安装 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 无镜像源,故无 registry action。
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
+ ```