Files
Sprinter-SDCC/applications/Volkov/tests/make_p18_metadata_hdd.sh
T
snark13 8e389c03f8 Volkov: добавить Sprinter Commander
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места.

Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
2026-09-10 10:45:30 +03:00

37 lines
1.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/sh
# Создаёт HDD с точными FAT date/time и R/H/S/A у source-файла.
set -eu
PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
IMAGE=${1:-$PROJECT_DIR/build/hdd/p18_metadata.chd}
COMMANDER=${2:-$PROJECT_DIR/build/sprcmd.exe}
TEMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/sprcmd-metadata.XXXXXX")
BASE_CHD="$TEMP_DIR/base.chd"
RAW="$TEMP_DIR/p18_metadata.raw"
MTC="$TEMP_DIR/mtools.conf"
cleanup()
{
rm -rf -- "$TEMP_DIR"
}
trap cleanup EXIT HUP INT TERM
python3 "$PROJECT_DIR/tests/p18_metadata_fixture.py" create "$TEMP_DIR"
"$PROJECT_DIR/../../toolchain/make_hdd.sh" "$BASE_CHD" \
"$COMMANDER" "$TEMP_DIR/MSRC" "$TEMP_DIR/MDST"
chdman extractraw -i "$BASE_CHD" -o "$RAW" -f >/dev/null
printf 'drive z: file="%s" partition=1\n' "$RAW" > "$MTC"
export MTOOLSRC="$MTC" MTOOLS_SKIP_CHECK=1
# Базовый make_hdd копирует дерево без host mtime. Повторная запись с -m
# задаёт контролируемые FAT date/time до включения readonly.
mcopy -m -o "$TEMP_DIR/MSRC/META.BIN" z:/MSRC/META.BIN
mattrib +r +h +s +a z:/MSRC/META.BIN
python3 "$PROJECT_DIR/tests/p18_metadata_fixture.py" verify-source "$RAW"
mkdir -p "$(dirname -- "$IMAGE")"
chdman createhd -i "$RAW" -o "$IMAGE" -c none \
-chs 128,16,32 -ss 512 -f
printf 'P18 metadata HDD ready: %s\n' "$IMAGE"