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:
@@ -34,8 +34,11 @@ cp "$HERE/../systemd/bj-welcome.service" "$HERE/../systemd/bj-welcome.timer" "$W
|
||||
if [ -n "$BUNDLE" ]; then
|
||||
[ -s "$BUNDLE/manifest.json" ] || { echo "в $BUNDLE нет manifest.json"; exit 1; }
|
||||
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
|
||||
cp "$BUNDLE/$f" "$WORK/bj/bundle/"
|
||||
# манифест подписан: тело — base64 в поле payload
|
||||
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
|
||||
echo "в образ добавлено ядро bj: $(ls "$WORK/bj/bundle" | tr '\n' ' ')"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user