Volkov: добавить Sprinter Commander
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места. Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
This commit is contained in:
+12
-5
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# make_hdd.sh [--dest DIR] OUT.chd FILE1 [FILE2 ...]
|
||||
# make_hdd.sh [--dest DIR] OUT.chd FILE_OR_TREE1 [FILE_OR_TREE2 ...]
|
||||
#
|
||||
# Собирает 32 МБ RAW-образ жёсткого диска (MBR + один раздел FAT16) с
|
||||
# указанными файлами и конвертит его в CHD для MAME (монтируется как -hard2).
|
||||
@@ -15,6 +15,9 @@
|
||||
# toolchain/make_hdd.sh out.chd prog.exe KID:kid0.atl GUARD:g0.atl ...
|
||||
# — аргумент вида КАТАЛОГ:файл кладёт файл в подкаталог относительно
|
||||
# DIR; без префикса файл идёт непосредственно в DIR.
|
||||
# toolchain/make_hdd.sh out.chd prog.exe /tmp/test-tree
|
||||
# — каталог копируется рекурсивно вместе со своим именем. Это заметно
|
||||
# ускоряет сборку нагрузочных образов с сотнями мелких файлов.
|
||||
set -e
|
||||
|
||||
DEST_DIR=${HDD_DEST_DIR:-}
|
||||
@@ -118,9 +121,9 @@ echo "--- копирование файлов ---"
|
||||
make_dir_tree "$DEST_DIR"
|
||||
DEST_ROOT="z:${DEST_DIR:+/$DEST_DIR}"
|
||||
|
||||
# Аргумент может быть либо файлом (кладём в корень), либо парой
|
||||
# КАТАЛОГ:файл — тогда каталог создаётся относительно DEST_ROOT и файл
|
||||
# кладётся туда. Имена на Sprinter/DSS — 8.3.
|
||||
# Аргумент может быть файлом, деревом каталогов либо парой КАТАЛОГ:файл.
|
||||
# Дерево копируется рекурсивно вместе с именем своего корня. Имена на
|
||||
# Sprinter/DSS — 8.3.
|
||||
for f in "$@"; do
|
||||
case "$f" in
|
||||
*:*) dir="${f%%:*}"; src="${f#*:}"
|
||||
@@ -129,7 +132,11 @@ for f in "$@"; do
|
||||
# непрошедший вопрос mtools снова окажется невидимым.
|
||||
make_dir_tree "$target_dir"
|
||||
mt mcopy -o "$src" "z:/$target_dir/" ;;
|
||||
*) mt mcopy -o "$f" "$DEST_ROOT/" ;;
|
||||
*) if [ -d "$f" ]; then
|
||||
mt mcopy -s -o "$f" "$DEST_ROOT/"
|
||||
else
|
||||
mt mcopy -o "$f" "$DEST_ROOT/"
|
||||
fi ;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user