summaryrefslogtreecommitdiff
path: root/cli/import-sqlite-for-user.php
diff options
context:
space:
mode:
Diffstat (limited to 'cli/import-sqlite-for-user.php')
-rwxr-xr-xcli/import-sqlite-for-user.php34
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);