3.4 KiB
Каталог программ Siemens
Дистрибутивы хранятся в catalog, формат метаданных описан в
schema/index.schema.json. Названия и описания — на русском языке.
Структура
catalog/
├── index.md
├── files.yaml
└── category/
├── index.md
└── program/
├── index.md
├── files/
└── img/
Каждая категория и программа имеет один index.md. YAML Front Matter содержит
метаданные, тело файла — описание в Markdown. Дочерние элементы определяются по
папкам и не перечисляются в метаданных. Все версии программы находятся в одном
индексном файле.
Категория
---
format: 1
type: category
name: Название категории
order: -10
---
Описание категории.
order необязателен; меньшее значение выводится раньше.
Программа
---
format: 1
type: program
name: Название программы
summary: Короткое назначение программы для списка категории.
homepage: https://example.org
source: https://github.com/example/project
forum: https://example.org/forum/topic
author: Автор
screenshots:
- img/screenshot.png
versions:
- version: "1.2.0"
status: current
released: "2007-08-14"
files:
- path: files/program-1.2.0.zip
description: Дистрибутив
platform: win32
additional_files:
- path: files/manual.pdf
description: Руководство пользователя
---
Полное описание программы в Markdown.
Обязательные поля программы: format, type, name, summary, screenshots,
versions. Тело Markdown также обязательно. Значения platform: win32,
win64, dos, java, j2me. Значения status: current, archived.
Файлы версий указываются в versions[].files, общие файлы — в
additional_files. Пути файлов начинаются с files/, скриншотов — с img/.
Дистрибутивы хранятся в совместимых с Windows XP ZIP-архивах через Git LFS;
отдельные EXE также упаковываются в ZIP.
Размеры и SHA-256 всех файлов находятся в автоматически создаваемом
catalog/files.yaml, а не в индексах программ.
Команды
pnpm install
pnpm fill-metadata
pnpm fill-metadata:check
pnpm repack-archive path/to/archive.rar
pnpm tree
pnpm typecheck
fill-metadata пересобирает catalog/files.yaml. tree принимает путь и флаги
--paths, --versions. repack-archive принимает архив, EXE или папку,
создаёт совместимый с Windows XP ZIP и проверяет содержимое и timestamps; флаг
--replace удаляет исходный файл только после успешной проверки. Временный
каталог задаётся через --temp-dir /tmp/codex/<task_name>.