build-iso: имена файлов ядра — из подписанного манифеста (payload), ошибка при отсутствии

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
This commit is contained in:
zuevav
2026-09-23 16:28:37 +03:00
parent d7a1aec0f0
commit 14303b2522
+5 -2
View File
@@ -34,8 +34,11 @@ cp "$HERE/../systemd/bj-welcome.service" "$HERE/../systemd/bj-welcome.timer" "$W
if [ -n "$BUNDLE" ]; then if [ -n "$BUNDLE" ]; then
[ -s "$BUNDLE/manifest.json" ] || { echo "в $BUNDLE нет manifest.json"; exit 1; } [ -s "$BUNDLE/manifest.json" ] || { echo "в $BUNDLE нет manifest.json"; exit 1; }
mkdir -p "$WORK/bj/bundle"; cp "$BUNDLE/manifest.json" "$WORK/bj/bundle/" mkdir -p "$WORK/bj/bundle"; cp "$BUNDLE/manifest.json" "$WORK/bj/bundle/"
for f in $(python3 -c 'import json,sys;m=json.load(open(sys.argv[1]));m=m.get("manifest",m);print(" ".join(a["file"] for a in m["artifacts"] if a["name"] in ("bj-server","bj-component-install")))' "$BUNDLE/manifest.json"); do # манифест подписан: тело — base64 в поле payload
cp "$BUNDLE/$f" "$WORK/bj/bundle/" FILES=$(python3 -c 'import json,sys,base64;s=json.load(open(sys.argv[1]));m=json.loads(base64.b64decode(s["payload"]));print(" ".join(a["file"] for a in m["artifacts"] if a["name"] in ("bj-server","bj-component-install")))' "$BUNDLE/manifest.json") || { echo "не удалось прочитать манифест релиза"; exit 1; }
[ -n "$FILES" ] || { echo "в релизе нет компонентов ядра (bj-server, bj-component-install)"; exit 1; }
for f in $FILES; do
cp "$BUNDLE/$f" "$WORK/bj/bundle/" || exit 1
done done
echo "в образ добавлено ядро bj: $(ls "$WORK/bj/bundle" | tr '\n' ' ')" echo "в образ добавлено ядро bj: $(ls "$WORK/bj/bundle" | tr '\n' ' ')"
fi fi