diff options
Diffstat (limited to 'maintenance/checkImages.php')
-rw-r--r-- | maintenance/checkImages.php | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/maintenance/checkImages.php b/maintenance/checkImages.php index 3921c079..0364db20 100644 --- a/maintenance/checkImages.php +++ b/maintenance/checkImages.php @@ -42,39 +42,33 @@ class CheckImages extends Maintenance { $numImages = 0; $numGood = 0; + $repo = RepoGroup::singleton()->getLocalRepo(); do { $res = $dbr->select( 'image', '*', array( 'img_name > ' . $dbr->addQuotes( $start ) ), __METHOD__, array( 'LIMIT' => $this->mBatchSize ) ); foreach ( $res as $row ) { $numImages++; $start = $row->img_name; - $file = RepoGroup::singleton()->getLocalRepo()->newFileFromRow( $row ); + $file = $repo->newFileFromRow( $row ); $path = $file->getPath(); if ( !$path ) { $this->output( "{$row->img_name}: not locally accessible\n" ); continue; } - wfSuppressWarnings(); - $stat = stat( $file->getPath() ); - wfRestoreWarnings(); - if ( !$stat ) { + $size = $repo->getFileSize( $file->getPath() ); + if ( $size === false ) { $this->output( "{$row->img_name}: missing\n" ); continue; } - if ( $stat['mode'] & 040000 ) { - $this->output( "{$row->img_name}: is a directory\n" ); - continue; - } - - if ( $stat['size'] == 0 && $row->img_size != 0 ) { + if ( $size == 0 && $row->img_size != 0 ) { $this->output( "{$row->img_name}: truncated, was {$row->img_size}\n" ); continue; } - if ( $stat['size'] != $row->img_size ) { + if ( $size != $row->img_size ) { $this->output( "{$row->img_name}: size mismatch DB={$row->img_size}, " - . "actual={$stat['size']}\n" ); + . "actual={$size}\n" ); continue; } |