Repack software and centralize file metadata

This commit is contained in:
2026-08-18 01:08:41 +03:00
parent fe0ad7cf70
commit 570fb54805
174 changed files with 760 additions and 650 deletions
+8 -6
View File
@@ -8,6 +8,7 @@
```text
catalog/
├── index.yaml
├── files.yaml
└── category/
├── index.yaml
└── program/
@@ -54,8 +55,6 @@ versions:
- path: files/program-1.2.0.zip
description: Дистрибутив
platform: win32
size: 123456
sha256: 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
additional_files:
- path: files/manual.pdf
description: Руководство пользователя
@@ -67,7 +66,11 @@ additional_files:
Файлы версий указываются в `versions[].files`, общие файлы — в
`additional_files`. Пути файлов начинаются с `files/`, скриншотов — с `img/`.
`size` содержит размер в байтах. Архивы хранятся через Git LFS.
Дистрибутивы хранятся в совместимых с Windows XP ZIP-архивах через Git LFS;
отдельные EXE также упаковываются в ZIP.
Размеры и SHA-256 всех файлов находятся в автоматически создаваемом
`catalog/files.yaml`, а не в индексах программ.
## Команды
@@ -79,6 +82,5 @@ pnpm tree
pnpm typecheck
```
`fill-metadata` заполняет `size` и `sha256`. Команда принимает путь к программе,
категории или `index.yaml`. `tree` принимает путь и флаги `--paths`,
`--versions`.
`fill-metadata` пересобирает `catalog/files.yaml`. `tree` принимает путь и флаги
`--paths`, `--versions`.