mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-08-28 08:35:57 +00:00
feat: separate updates and manage shell config blocks
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
- `@gotgenes/pi-permission-system@26.2.1`:负责工具、路径、MCP、硬拒绝和兜底权限基线。
|
||||
- `extensions/tool-routing.ts`:保留 Pi 默认系统提示词,并按当前激活工具追加简短的工具与搜索路由规则;提供 `/dump-system-prompt` 导出当前有效提示词。
|
||||
|
||||
## 安装与卸载
|
||||
## 安装、升级与卸载
|
||||
|
||||
推荐从仓库检出目录运行安装脚本:
|
||||
|
||||
@@ -36,22 +36,46 @@ pi install git:git@bitbucket.org:siakitem/my-pi.git
|
||||
可用后继续检查并可通过官方 `themes` kitten 配置 `Solarized Dark`。
|
||||
- 检查 Oh My Zsh。安装采用官方 unattended 模式,不切换默认 shell、不立即启动 Zsh,
|
||||
也不覆盖现有 `.zshrc`。
|
||||
- 检查 Powerlevel10k;可克隆到 Oh My Zsh 的 custom themes 目录,并在没有现有
|
||||
`~/.p10k.zsh` 时复制仓库内置的 `config/p10k.zsh`。该配置来自当前使用的 Powerlevel10k
|
||||
Rainbow/ASCII 单行紧凑主题;脚本会把 `ZSH_THEME` 和配置加载语句写入 `.zshrc`,因此
|
||||
首次启动不会进入交互配置向导。已有 `~/.p10k.zsh` 始终保留,不会被覆盖。
|
||||
- 检查 Powerlevel10k;可克隆到 Oh My Zsh 的 custom themes 目录,并把仓库内置的
|
||||
`config/p10k.zsh` 原子同步到 `~/.config/my-pi/p10k.zsh`(遵循 `XDG_CONFIG_HOME`)。
|
||||
该配置来自当前使用的 Powerlevel10k Rainbow/ASCII 单行紧凑主题;用户自己的
|
||||
`~/.p10k.zsh` 不会被覆盖。脚本只在 `.zshrc` 中写入带首尾标记的主题和加载受管块。
|
||||
- 逐项检查 `git`、`zsh-autosuggestions` 和 `zsh-syntax-highlighting` 是否已经在
|
||||
`.zshrc` 的 `plugins` 数组中启用。后两个插件缺少源码时会先克隆到 Oh My Zsh 的
|
||||
custom plugins 目录;语法高亮按最后一个插件处理。
|
||||
- 最后继续检查 `codegraph`、`kotlin-lsp`、Java 21+ 和 `jdtls`。Kotlin、Java 和 JDT LS
|
||||
的自动安装使用 Homebrew。
|
||||
|
||||
脚本首次改动 `.zshrc` 前会在同目录创建带时间戳的备份。若机器没有所需的 Homebrew、
|
||||
`curl` 或 `git`,脚本会保留已完成的安装结果、继续检查其他项目,并最终返回非零状态。
|
||||
脚本首次实际改动 `.zshrc` 前会在同目录创建带时间戳的备份。Oh My Zsh loader、
|
||||
Powerlevel10k 主题/配置和各 Zsh 插件使用 `# >>> my-pi:<id> >>>` 到
|
||||
`# <<< my-pi:<id> <<<` 的受管块协议;以后只替换块内内容,块外用户配置保持不变。
|
||||
标记缺失、重复或不完整时脚本会拒绝修改。若机器没有所需的 Homebrew、`curl` 或 `git`,
|
||||
脚本会保留已完成的安装结果、继续检查其他项目,并最终返回非零状态。
|
||||
`rtk` 只供默认关闭的命令改写使用,因此不会作为必装依赖检查。
|
||||
|
||||
也可以绕过脚本,直接运行上面的 `pi install` 命令,此时机器级 CLI 不会被检查。
|
||||
|
||||
升级已安装的组合包请使用独立脚本:
|
||||
|
||||
```bash
|
||||
./update.sh
|
||||
```
|
||||
|
||||
升级脚本先执行:
|
||||
|
||||
```bash
|
||||
pi update git:git@bitbucket.org:siakitem/my-pi.git
|
||||
```
|
||||
|
||||
随后只处理已经安装的项目,未安装项直接跳过且不会询问安装:Kitty 及已启用的
|
||||
Solarized Dark、Oh My Zsh、Powerlevel10k、两个第三方 Zsh 插件、CodeGraph,以及由
|
||||
Homebrew 管理的 Kotlin LSP、Java 21 和 JDT LS。Git checkout 使用 `pull --ff-only`,
|
||||
Homebrew 包使用 `brew upgrade`;无法确认安装来源时保留现状并报告。
|
||||
|
||||
升级时会优先从 `pi update` 后的已安装组合包目录读取最新 `config/p10k.zsh`,再与受管副本比较,
|
||||
只在内容不同时备份并原子同步;`.zshrc` 也只更新已有的 my-pi 受管块,不触碰块外配置。因此安装流程负责补齐缺失项,升级流程只升级
|
||||
已安装项并同步已受管配置。
|
||||
|
||||
卸载组合包:
|
||||
|
||||
```bash
|
||||
@@ -60,11 +84,12 @@ pi install git:git@bitbucket.org:siakitem/my-pi.git
|
||||
|
||||
卸载脚本只调用 `pi remove`,不会删除 Kitty、终端主题、Oh My Zsh、Powerlevel10k、Zsh
|
||||
插件、CodeGraph、Kotlin LSP、JDT LS 或 Java,因为这些用户环境或机器级工具可能仍被其他
|
||||
项目使用。两个脚本都可通过 `PI_PACKAGE_SOURCE` 覆盖默认包源,
|
||||
项目使用。三个脚本都可通过 `PI_PACKAGE_SOURCE` 覆盖默认包源,
|
||||
例如在本地检出中测试:
|
||||
|
||||
```bash
|
||||
PI_PACKAGE_SOURCE="$PWD" ./install.sh
|
||||
PI_PACKAGE_SOURCE="git:git@bitbucket.org:siakitem/my-pi.git" ./update.sh
|
||||
```
|
||||
|
||||
根 `package.json` 使用精确版本,`package-lock.json` 固定完整依赖树。不要再用项目级
|
||||
|
||||
Reference in New Issue
Block a user