一、新增技能 - product-planning(253 文件):四阶段产品方案流水线(调研方案 / 需求结构 / 界面交付 / 说明文档), 含 references/stage-* 与内置的 diagram-design 子技能、scripts/ - oil-ui-pro(26 文件):UI/UX 设计 · 评审 · 多风格对比,含 assets/style-explorer.html、scripts/shoot.mjs、tests/ 二、session-mechanism 收尾(承接 e5dfb6e) - references/作业规矩/03-多棒接力编排.md、04-去AI味与说话方式.md:交叉引用表里的「参考 01」改为新落点 (该不该问/结论骨架 → references/02-功能优先协作协议.md;回复排版 → references/03-回复排版-核心块.md) - references/manifest.md 随生成器重算(含上述两行的 md5 与字节数) 三、入库前检查 - 三个技能内均无令牌 / 私钥 / 密钥赋值;.neodata_token 类落点已由 .gitignore 挡住 - 无运行期产物混入(logs/ · tmp/ · __pycache__ · *.log) - 暂存 282 个文件 = 279 新增(253 + 26)+ 3 修改
32 lines
1.2 KiB
Bash
32 lines
1.2 KiB
Bash
#!/bin/sh
|
|
# 加载时先找可用的 Python 3;缺少时只提醒一次,继续原任务。
|
|
script_dir=${0%/*}
|
|
if [ -n "$OIL_NO_UPDATE_CHECK" ] || [ -e "$script_dir/../.git" ]; then
|
|
exit 0
|
|
fi
|
|
state_base=${XDG_STATE_HOME:-${LOCALAPPDATA:-$HOME/.local/state}}
|
|
marker="$state_base/oil/update-python-missing"
|
|
for interpreter in python3 python; do
|
|
if command -v "$interpreter" >/dev/null 2>&1 && "$interpreter" -c 'import sys; sys.exit(0 if sys.version_info[0] == 3 else 1)' >/dev/null 2>&1; then
|
|
rmdir "$marker" 2>/dev/null
|
|
exec "$interpreter" "$script_dir/check_update.py"
|
|
fi
|
|
done
|
|
# mkdir 的独占创建同时防止连续加载与并发加载重复提醒。
|
|
missing_python_notice() {
|
|
case ${LC_ALL:-${LC_MESSAGES:-$LANG}} in
|
|
en*|EN*) printf '%s\n' 'Automatic updates need Python 3. This update check did not run.' ;;
|
|
*) printf '%s\n' '自动更新需要 Python 3,本次没有检查更新。' ;;
|
|
esac
|
|
}
|
|
mkdir -p "$state_base/oil" 2>/dev/null
|
|
if mkdir "$marker" 2>/dev/null; then
|
|
missing_python_notice
|
|
elif [ -d "$marker" ]; then
|
|
printf '%s\n' 'OIL_UPDATE_CHECK_SKIPPED: missing_python'
|
|
else
|
|
# 状态目录不可写时,由宿主记住这次提醒。
|
|
missing_python_notice
|
|
fi
|
|
exit 0
|