From 370e83bb0dfd0c70de268c93bf07ad5ee0897192 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Fri, 15 Aug 2008 01:29:47 +0200 Subject: Update auf 1.13.0 --- maintenance/deleteArchivedFiles.inc | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'maintenance/deleteArchivedFiles.inc') diff --git a/maintenance/deleteArchivedFiles.inc b/maintenance/deleteArchivedFiles.inc index 32ddf4c8..da1c14d5 100644 --- a/maintenance/deleteArchivedFiles.inc +++ b/maintenance/deleteArchivedFiles.inc @@ -3,17 +3,18 @@ /** * Support functions for the deleteArchivedFiles script * - * @addtogroup Maintenance + * @file + * @ingroup Maintenance * @author Aaron Schulz */ require_once( "$IP/includes/FileStore.php" ); +require_once( "$IP/includes/filerepo/File.php" ); function DeleteArchivedFiles( $delete = false ) { # Data should come off the master, wrapped in a transaction $dbw = wfGetDB( DB_MASTER ); - $dbw->begin(); $transaction = new FSTransaction(); if( !FileStore::lock() ) { @@ -32,25 +33,24 @@ function DeleteArchivedFiles( $delete = false ) { $id = $row->fa_id; $store = FileStore::get( $group ); - if ( $store ) { + if( $store ) { $path = $store->filePath( $key ); - if ( $path && file_exists($path) ) { + $sha1 = substr( $key, 0, strcspn( $key, '.' ) ); + $inuse = $dbw->selectField( 'oldimage', '1', + array( 'oi_sha1' => $sha1, + 'oi_deleted & '.File::DELETED_FILE => File::DELETED_FILE ), + __METHOD__, array( 'FOR UPDATE' ) ); + if ( $path && file_exists($path) && !$inuse ) { $transaction->addCommit( FSTransaction::DELETE_FILE, $path ); $dbw->query( "DELETE FROM $tbl_arch WHERE fa_id = $id" ); } else { echo( "Notice - file '$key' not found in group '$group'\n" ); } } else { - echo( "Notice - invalid file storage group '$group'\n" ); + echo( "Notice - invalid file storage group '$group' for file '$key'\n" ); } } echo( "done.\n" ); $transaction->commit(); - - # This bit's done - $dbw->commit(); - } - -?> \ No newline at end of file -- cgit v1.2.3-54-g00ecf