format('Y')); if (!preg_match('/^20\d{2}$/', $year)) { fwrite(STDERR, "Ungültiges Jahr: {$year}\nAufruf: php bin/dateien-init.php [Jahr]\n"); exit(1); } $root = STORAGE_PATH . '/dateien/uploads'; if (!is_dir($root)) { fwrite(STDERR, "storage/dateien/uploads/ fehlt — erst die Dateiablage einrichten (siehe CLAUDE.md).\n"); exit(1); } if (!is_writable($root)) { fwrite(STDERR, "storage/dateien/uploads/ ist nicht beschreibbar.\n"); exit(1); } $paths = [$year]; foreach (DATEIEN_ABTEILUNGEN as $abteilung) { $paths[] = $year . '/' . $abteilung; } $created = 0; $failed = 0; foreach ($paths as $rel) { $dir = $root . '/' . $rel; if (is_dir($dir)) { echo "· {$rel} (gibt es schon)\n"; continue; } if (!mkdir($dir, 0775, true) && !is_dir($dir)) { fwrite(STDERR, "✗ {$rel} konnte nicht angelegt werden\n"); $failed++; continue; } echo "✓ {$rel}\n"; $created++; } echo "\n{$created} Ordner angelegt" . ($failed > 0 ? ", {$failed} fehlgeschlagen" : '') . ".\n"; exit($failed > 0 ? 1 : 0);