17 lines
816 B
PHP
17 lines
816 B
PHP
<?php
|
|
// Field-scoped compare-before-restore. Preview unless explicitly --apply.
|
|
require __DIR__ . '/operations.php';
|
|
use DplOnboarding\PanelChange;
|
|
$opts=getopt('', ['backup:', 'apply', 'help']);
|
|
if (isset($opts['help'])) { echo "--backup=DIR [--apply]; restores new-format promotion journal only\n"; exit; }
|
|
try {
|
|
$dir=$opts['backup'] ?? throw new RuntimeException('Missing --backup');
|
|
DplOnboarding\boot();
|
|
$result=DplOnboarding\locked($dir, fn() => PanelChange::rollback($dir, array_key_exists('apply',$opts)));
|
|
echo json_encode($result, JSON_THROW_ON_ERROR | JSON_UNESCAPED_UNICODE) . PHP_EOL;
|
|
} catch (Throwable $e) {
|
|
$reason=get_class($e)===RuntimeException::class ? $e->getMessage() : "Inspect journal/conflicts";
|
|
fwrite(STDERR, "Rollback stopped: " . $reason . "\n");
|
|
exit(1);
|
|
}
|