summaryrefslogtreecommitdiff
path: root/maintenance/syncFileBackend.php
diff options
context:
space:
mode:
Diffstat (limited to 'maintenance/syncFileBackend.php')
-rw-r--r--maintenance/syncFileBackend.php13
1 files changed, 10 insertions, 3 deletions
diff --git a/maintenance/syncFileBackend.php b/maintenance/syncFileBackend.php
index 158019b7..f0be709f 100644
--- a/maintenance/syncFileBackend.php
+++ b/maintenance/syncFileBackend.php
@@ -21,7 +21,7 @@
* @ingroup Maintenance
*/
-require_once( __DIR__ . '/Maintenance.php' );
+require_once __DIR__ . '/Maintenance.php';
/**
* Maintenance script that syncs one file backend to another based on
@@ -40,6 +40,7 @@ class SyncFileBackend extends Maintenance {
$this->addOption( 'posdir', 'Directory to read/record journal positions', false, true );
$this->addOption( 'posdump', 'Just dump current journal position into the position dir.' );
$this->addOption( 'postime', 'For position dumps, get the ID at this time', false, true );
+ $this->addOption( 'backoff', 'Stop at entries younger than this age (sec).', false, true );
$this->addOption( 'verbose', 'Verbose mode', false, false, 'v' );
$this->setBatchSize( 50 );
}
@@ -88,7 +89,13 @@ class SyncFileBackend extends Maintenance {
} else {
$startFromPosFile = false;
}
- $end = $this->getOption( 'end', INF );
+
+ if ( $this->hasOption( 'backoff' ) ) {
+ $time = time() - $this->getOption( 'backoff', 0 );
+ $end = (int)$src->getJournal()->getPositionAtTime( $time );
+ } else {
+ $end = $this->getOption( 'end', INF );
+ }
$this->output( "Synchronizing backend '{$dst->getName()}' to '{$src->getName()}'...\n" );
$this->output( "Starting journal position is $start.\n" );
@@ -289,4 +296,4 @@ class SyncFileBackend extends Maintenance {
}
$maintClass = "SyncFileBackend";
-require_once( RUN_MAINTENANCE_IF_MAIN );
+require_once RUN_MAINTENANCE_IF_MAIN;