diff options
Diffstat (limited to 'cli/import-sqlite-for-user.php')
| -rwxr-xr-x | cli/import-sqlite-for-user.php | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/cli/import-sqlite-for-user.php b/cli/import-sqlite-for-user.php new file mode 100755 index 000000000..f0e54e2fa --- /dev/null +++ b/cli/import-sqlite-for-user.php @@ -0,0 +1,34 @@ +#!/usr/bin/php +<?php +require(__DIR__ . '/_cli.php'); + +$params = [ + 'user:', + 'filename:', + 'force-overwrite', +]; + +$options = getopt('', $params); + +if (!validateOptions($argv, $params) || empty($options['user']) || empty($options['filename'])) { + fail('Usage: ' . basename(__FILE__) . ' --user username --force-overwrite --filename /path/to/db.sqlite'); +} + +$username = cliInitUser($options['user']); +$filename = $options['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); +$clearFirst = array_key_exists('force-overwrite', $options); +$ok = $databaseDAO->dbCopy($filename, FreshRSS_DatabaseDAO::SQLITE_IMPORT, $clearFirst); +if (!$ok) { + echo 'If you would like to clear the user database first, use the option --force-overwrite', "\n"; +} +invalidateHttpCache($username); + +done($ok); |
