# BackupList.txt —— 备份 / 恢复共用清单
#
# 每一行支持**两种写法**，混用没问题：
#
#   1. 软件名（推荐）—— 去 SoftwareCatalog.psd1 查目录，归档名就是软件名
#          FooClolor
#          scoop
#          Kazumi :- !*Cache
#
#   2. 用户手写的目录 —— 含 `\`、`/` 或 `%` 就按路径处理，归档名沿用 <名>_from_<路径>
#          %UserProfile%\Documents\PowerShell
#          C:\Programs\MiFlash :- MiFlash\logs\
#
#   3. 软件名 + @pathname —— 强制用旧的路径命名算法（归档名从路径算）
#          FooClolor @pathname
#
# 两种写法都支持**追加**与**排除**：
#
#     :+ 追加一个目录；写成软件名时会按名录展开成它的全部目录
#           %UserProfile%\Documents\PowerShell :+ D:\backup\ps-extra
#           MiFlash :+ MiFlash_Unlock
#        :+ 可以出现多次、位置随意；追加进来的目录与主目录一起打进同一个归档。
#
#     :- 排除模式（`::` 是它的历史别名，两者等价）
#           Edge :- !*Cache,Default\Extensions
#        `,` 与 `;` 都当分隔符。
#
# 行尾可以写 `# 说明` 讲清这条为什么这么配；运行时会把它和目录介绍一起打印出来：
#     Edge :- !*Cache  # 缓存可再生，不进归档
#
# 排除模式：相对归档根目录。以 ! 开头表示"任意层级下匹配这个组件名"（7z 的 -xr!）。
#          不要自己写引号；模式里的空格会被自动转成 ?（7z 的模式不支持空格）。
# 标记：
#   encrypt   用 7z 加密该归档（口令来自 BAKNRET_PASSWORD 或 -KeyFile）
#   pathname  用路径命名算法而不是软件名
#   root=<名> 尚未实现（归档内根目录始终是源目录名），用了会告警
#
# 归档名 = 软件名，所以：**同一个软件不要写两遍**，脚本会直接报重复错误。
# 软件名（连同排除规则、加密标记）都维护在 SoftwareCatalog.psd1 和本文件里，
# 两边都进 git，改动可追溯。

# ---- 用户配置 / 开发环境 ----
legendary
opencode
# scoop 是一个软件名 + 对象数组（见 SoftwareCatalog.psd1）：一个 scoop.7z 里
# 同时装 %UserProfile%\scoop\persist 与 %UserProfile%\.config\scoop。
scoop  # scoop 各应用的持久化数据 + scoop 自身配置
# .ssh 里是私钥。想加密就把下面那行 @encrypt 的注释互换（见 README「加密」）
.ssh
CodeSpace :- Shuery-Shuai\ImmortalWrt-BPI-R4-Firmware\immortalwrt\  # 排除同一仓库里的源码树
PowerShell
WindowsPowerShell

# ---- 应用数据 ----
AutoDarkMode
Kazumi
piliplus
fnm
twinkle-tray

# ---- 浏览器：排除可再生的缓存、遥测与扩展本体 ----
# 解压后 4.22 GB / 25030 个文件里，下面这组排除会留下约 431 MB / 2164 个文件，
# 排除掉的 3.79 GB 全部可以重新生成：缓存、组件缓存、Service Worker、
# 扩展本体（可从商店重装）、遥测与优化数据。
# 书签/密码/偏好/历史，以及站点数据（IndexedDB / Local Storage）都保留。
# 想再省 230 MB，可以把 Default\IndexedDB、Default\Local Storage、
# Default\Session Storage、Default\blob_storage、Default\WebStorage 也加进来。
# !*Cache 一次覆盖 Cache / Code Cache / GPUCache / DawnCache / GrShaderCache 等一批。
#
# 注意：不带 ! 的普通模式是**相对归档根目录锚定**的（会展开成 `-x!User?Data\<模式>`），
# 所以它只排除根目录下那一份。Edge 的 OneAuth\WebView2\EBWebView\ 里还有一整套
# 自己的 Crashpad / BrowserMetrics / ProvenanceData / optimization_guide，
# 根锚定模式碰不到它们 —— 这些可再生的东西一律用 ! 形式按组件名排除（-xr!），任意层级都命中。
# 实测：根锚定的 Edge 归档 1781 MB / 27961 项 -> 改成 ! 形式后 72 MB / 2303 项，
# 书签、密码（Login Data）、Cookies、偏好、历史、IndexedDB / Local Storage 全部保留。
#
# 注意：Edge 常驻时打包会有上百个文件读不到（含 Login Data / Cookies），
# 脚本检测到警告后不会用这份不完整的归档覆盖已有的完整归档。备份前建议先退出 Edge。
Edge :- !*Cache,!component_crx_cache,!ProvenanceData,!optimization_guide,!Crashpad,!BrowserMetrics,Default\Service Worker,Default\Extensions,Default\ExtensionActivityEdge,Snapshots,Edge Sidebar,Edge Shopping  # 下面这些全是可再生数据：缓存/组件缓存/SW/扩展本体/遥测与优化
WindowsTerminal

# ---- 系统 ----
Startup

# ---- C:\Programs ----
BaiduNetdisk
FooClolor
March7thAssistant :- 3rdparty\WebBrowser\UserProfile\Integrated,March7thAssistant\logs\  # 内置浏览器的缓存与日志，可再生
MiFlash
MiFlash_Unlock
QuarkCloudDrive
translucenttb
ScoopApps-persist :- persist\ariang-native\UserData\DawnCache,persist\ariang-native\UserData\GPUCache,persist\ariang-native\UserData\Local Storage,persist\ariang-native\UserData\Session Storage  # ariang 的缓存/会话数据，可再生

# ---- 其它盘 ----
Aria
