8e389c03f8
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места. Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
39 lines
1.0 KiB
Bash
Executable File
39 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
# Создаёт каталоги с итоговыми panel.count ровно 27 и 28 (включая `..`).
|
|
|
|
set -eu
|
|
|
|
PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
|
DEFAULT_IMAGE="$PROJECT_DIR/build/hdd/p5_panel_edges.chd"
|
|
IMAGE=${1:-$DEFAULT_IMAGE}
|
|
EXECUTABLE=${2:-$PROJECT_DIR/build/sprcmd.exe}
|
|
TEMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/sprcmd-panel-edge.XXXXXX")
|
|
FIXTURE_ROOT="$TEMP_DIR/EDGES"
|
|
|
|
cleanup()
|
|
{
|
|
rm -rf -- "$TEMP_DIR"
|
|
}
|
|
trap cleanup EXIT HUP INT TERM
|
|
|
|
mkdir -p "$(dirname -- "$IMAGE")" "$FIXTURE_ROOT/N27" "$FIXTURE_ROOT/N28"
|
|
|
|
i=0
|
|
while [ "$i" -lt 26 ]; do
|
|
name=$(printf 'A%07d.TXT' "$i")
|
|
cp "$PROJECT_DIR/tests/p3_data/P3ROOT.TXT" "$FIXTURE_ROOT/N27/$name"
|
|
i=$((i + 1))
|
|
done
|
|
|
|
i=0
|
|
while [ "$i" -lt 27 ]; do
|
|
name=$(printf 'B%07d.TXT' "$i")
|
|
cp "$PROJECT_DIR/tests/p3_data/P3ROOT.TXT" "$FIXTURE_ROOT/N28/$name"
|
|
i=$((i + 1))
|
|
done
|
|
|
|
"$PROJECT_DIR/../../toolchain/make_hdd.sh" "$IMAGE" \
|
|
"$EXECUTABLE" "$FIXTURE_ROOT/N27" "$FIXTURE_ROOT/N28"
|
|
|
|
echo "P5 panel-edge HDD ready: N27=26+parent, N28=27+parent"
|