Files
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/
- 12 code-workspace-Files
- STATUS-*.md
- viele M/D/R-Änderungen an bereits getrackten Files
- .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-08 02:27:02 +02:00

83 lines
2.5 KiB
PHP

<?php
declare(strict_types=1);
/**
* Prüft Pflicht-Files und referenzierte Asset-Pfade.
*/
function check_files(string $dir, array $m, Report $r): void {
// Pflicht-Files
$required = [
'README.md',
'db/migrations.sql',
'tests/mock-platform.html',
];
foreach ($required as $f) {
if (file_exists("$dir/$f")) {
$r->ok("Pflicht-File vorhanden: $f");
} else {
$r->fail("Pflicht-File fehlt: $f");
}
}
// CHANGELOG ab Version > 1.0.0
if (!empty($m['version']) && version_compare($m['version'], '1.0.0', '>')) {
if (file_exists("$dir/CHANGELOG.md")) {
$r->ok("CHANGELOG.md vorhanden");
} else {
$r->warn("CHANGELOG.md fehlt (Pflicht ab Modul-Version > 1.0.0)");
}
}
// Entry-HTML
if (!empty($m['entryHtml'])) {
$entry = $m['entryHtml'];
if (file_exists("$dir/$entry")) {
$r->ok("entryHtml existiert: $entry");
} else {
$r->fail("entryHtml referenziert, aber Datei fehlt: $entry");
}
}
// Card-Bild
if (!empty($m['cardImage'])) {
if (file_exists("$dir/{$m['cardImage']}")) {
$r->ok("cardImage existiert: {$m['cardImage']}");
} else {
$r->fail("cardImage referenziert, aber Datei fehlt: {$m['cardImage']}");
}
}
// Screenshots
if (!empty($m['screenshots']) && is_array($m['screenshots'])) {
foreach ($m['screenshots'] as $shot) {
if (file_exists("$dir/$shot")) {
$r->ok("screenshot existiert: $shot");
} else {
$r->fail("screenshot referenziert, aber Datei fehlt: $shot");
}
}
}
// Verbotene Files
$forbidden = ['.env.local', 'node_modules', '.git'];
foreach ($forbidden as $f) {
if (file_exists("$dir/$f")) {
$r->fail("Verbotenes File/Verzeichnis im Lieferpaket: $f");
}
}
// Großdateien (>50 MB)
$bigFiles = [];
$rii = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS));
foreach ($rii as $file) {
if ($file->isFile() && $file->getSize() > 50 * 1024 * 1024) {
$bigFiles[] = sprintf("%s (%.1f MB)", str_replace($dir . DIRECTORY_SEPARATOR, '', $file->getPathname()), $file->getSize() / 1024 / 1024);
}
}
if ($bigFiles) {
$r->warn("Großdateien > 50 MB gefunden (Ausnahme bei Atlas beantragen)", $bigFiles);
} else {
$r->ok("Keine Großdateien über 50 MB");
}
}