Tcrb import gefixt

This commit is contained in:
Eskimue
2026-04-05 16:26:14 +02:00
parent 553ab5d57d
commit fc3264cc2f
2 changed files with 41 additions and 4 deletions
+40 -4
View File
@@ -40,7 +40,7 @@ foreach (['host', 'dbname', 'user', 'pass'] as $requiredKey) {
}
}
$options = parseCliArguments($argv);
$options = parseCliArguments(getCliArguments());
if (($options['help'] ?? false) === true) {
writeUsage();
@@ -341,6 +341,19 @@ function parseCliArguments(array $argv): array
return $options;
}
function getCliArguments(): array
{
if (isset($GLOBALS['argv']) && is_array($GLOBALS['argv'])) {
return $GLOBALS['argv'];
}
if (isset($_SERVER['argv']) && is_array($_SERVER['argv'])) {
return $_SERVER['argv'];
}
return [];
}
function writeUsage(): void
{
$usageLines = [
@@ -516,12 +529,10 @@ PS
$response = curl_exec($ch);
if ($response === false) {
$error = curl_error($ch);
curl_close($ch);
throw new RuntimeException('Download fehlgeschlagen: ' . $error);
}
$httpCode = (int) curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
if ($httpCode < 200 || $httpCode >= 300) {
throw new RuntimeException("Download fehlgeschlagen. HTTP-Status: {$httpCode}");
@@ -699,6 +710,31 @@ function jdToUtcString(float $jd): string
function writeMessage(string $message, bool $isError = false): void
{
$prefix = '[' . date('Y-m-d H:i:s') . '] ';
$stream = $isError ? STDERR : STDOUT;
$stream = openOutputStream($isError);
fwrite($stream, $prefix . $message . PHP_EOL);
}
/**
* `STDOUT` und `STDERR` sind in manchen CGI-/Web-Kontexten nicht definiert.
* Daher greifen wir auf die entsprechenden php:// Streams zurueck.
*
* @return resource
*/
function openOutputStream(bool $isError)
{
if ($isError && defined('STDERR')) {
return STDERR;
}
if (!$isError && defined('STDOUT')) {
return STDOUT;
}
$stream = fopen($isError ? 'php://stderr' : 'php://stdout', 'wb');
if ($stream === false) {
throw new RuntimeException('Ausgabestream konnte nicht geoeffnet werden.');
}
return $stream;
}