#!/usr/bin/env php db['type'] ?? ''); $cliOptions = new class extends CliOptionsParser { public string $user; public string $filename; public bool $forceOverwrite; public function __construct() { $this->addRequiredOption('user', (new CliOption('user'))); $this->addRequiredOption('filename', (new CliOption('filename'))); $this->addOption('forceOverwrite', (new CliOption('force-overwrite'))->withValueNone()); parent::__construct(); } }; if (!empty($cliOptions->errors)) { fail('FreshRSS error: ' . array_shift($cliOptions->errors) . "\n" . $cliOptions->usage); } $username = cliInitUser($cliOptions->user); $filename = $cliOptions->filename; if (pathinfo($filename, PATHINFO_EXTENSION) !== 'sqlite') { fail('Only *.sqlite files are supported!'); } echo 'FreshRSS importing database from SQLite for user “', $username, "”…\n"; $databaseDAO = FreshRSS_Factory::createDatabaseDAO($username); $ok = $databaseDAO->dbCopy($filename, FreshRSS_DatabaseDAO::SQLITE_IMPORT, clearFirst: $cliOptions->forceOverwrite); if (!$ok) { echo 'If you would like to clear the user database first, use the option --force-overwrite', "\n"; } invalidateHttpCache($username); done($ok);