export-sqlite-for-user.php 1003 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/usr/bin/env php
  2. <?php
  3. declare(strict_types=1);
  4. require __DIR__ . '/_cli.php';
  5. performRequirementCheck(FreshRSS_Context::systemConf()->db['type'] ?? '');
  6. $cliOptions = new class extends CliOptionsParser {
  7. public string $user;
  8. public string $filename;
  9. public function __construct() {
  10. $this->addRequiredOption('user', (new CliOption('user')));
  11. $this->addRequiredOption('filename', (new CliOption('filename')));
  12. parent::__construct();
  13. }
  14. };
  15. if (!empty($cliOptions->errors)) {
  16. fail('FreshRSS error: ' . array_shift($cliOptions->errors) . "\n" . $cliOptions->usage);
  17. }
  18. $username = cliInitUser($cliOptions->user);
  19. $filename = $cliOptions->filename;
  20. if (pathinfo($filename, PATHINFO_EXTENSION) !== 'sqlite') {
  21. fail('Only *.sqlite files are supported!');
  22. }
  23. echo 'FreshRSS exporting database to SQLite for user “', $username, "”…\n";
  24. $databaseDAO = FreshRSS_Factory::createDatabaseDAO($username);
  25. $ok = $databaseDAO->dbCopy($filename, FreshRSS_DatabaseDAO::SQLITE_EXPORT);
  26. done($ok);