52 lines
1.5 KiB
PHP
52 lines
1.5 KiB
PHP
#!/usr/bin/env php
|
||
<?php
|
||
|
||
declare(strict_types=1);
|
||
|
||
/**
|
||
* Sichert die Programmeinstellungen vor einem E2E-Lauf und stellt sie danach
|
||
* wieder her.
|
||
*
|
||
* docker compose exec -T -u www-data php php scripts/e2e-einstellungen.php sichern
|
||
* docker compose exec -T -u www-data php php scripts/e2e-einstellungen.php wiederherstellen
|
||
*
|
||
* `tests/e2e/run.sh` ruft beides selbst auf. `--still` schweigt, solange
|
||
* nichts schiefgeht.
|
||
*/
|
||
|
||
require dirname(__DIR__) . '/vendor/autoload.php';
|
||
|
||
use Finanzmanager\Config;
|
||
use Finanzmanager\Services\E2EEinstellungen;
|
||
|
||
Config::load();
|
||
|
||
$still = in_array('--still', $argv, true);
|
||
$aktion = $argv[1] ?? '';
|
||
$pfad = E2EEinstellungen::standardPfad();
|
||
|
||
$sage = static function (string $zeile) use ($still): void {
|
||
if (!$still) {
|
||
echo $zeile . PHP_EOL;
|
||
}
|
||
};
|
||
|
||
switch ($aktion) {
|
||
case 'sichern':
|
||
$anzahl = E2EEinstellungen::sichern($pfad);
|
||
$sage($anzahl === null
|
||
? 'Sicherung aus einem früheren Lauf vorhanden – bleibt stehen.'
|
||
: sprintf('%d Einstellungen gesichert.', $anzahl));
|
||
exit(0);
|
||
|
||
case 'wiederherstellen':
|
||
$anzahl = E2EEinstellungen::wiederherstellen($pfad);
|
||
$sage($anzahl === null
|
||
? 'Keine Sicherung vorhanden – nichts wiederherzustellen.'
|
||
: sprintf('%d Einstellungen wiederhergestellt.', $anzahl));
|
||
exit(0);
|
||
|
||
default:
|
||
fwrite(STDERR, "Aufruf: e2e-einstellungen.php sichern|wiederherstellen [--still]\n");
|
||
exit(2);
|
||
}
|