X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FdumpUploads.php;h=726153fd44153bb5ab1ad8695f53df71b17e7ef7;hb=ae2e5ac132e2908c8c43d3e26a038af99578ede1;hp=50d03ae1882141fc85ecc11fdcb4333e4bb0e6c0;hpb=9463b17980147e7e99a6488d6111cb9d1a52f951;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/dumpUploads.php b/maintenance/dumpUploads.php index 50d03ae188..726153fd44 100644 --- a/maintenance/dumpUploads.php +++ b/maintenance/dumpUploads.php @@ -1,33 +1,55 @@ mDescription = "Generates list of uploaded files which can be fed to tar or similar. +By default, outputs relative paths against the parent directory of \$wgUploadDirectory."; + $this->addOption( 'base', 'Set base relative path instead of wiki include root', false, true ); + $this->addOption( 'local', 'List all local files, used or not. No shared files included' ); + $this->addOption( 'used', 'Skip local images that are not used' ); + $this->addOption( 'shared', 'Include images used from shared repository' ); + } + + public function execute() { + global $IP; $this->mAction = 'fetchLocal'; - $this->mBasePath = $IP; + $this->mBasePath = $this->getOption( 'base', $IP ); $this->mShared = false; $this->mSharedSupplement = false; - - if( isset( $args['help'] ) ) { - $this->mAction = 'help'; - } - - if( isset( $args['base'] ) ) { - $this->mBasePath = $args['base']; - } - - if( isset( $args['local'] ) ) { + + if ( $this->hasOption( 'local' ) ) { $this->mAction = 'fetchLocal'; } - if( isset( $args['used'] ) ) { + if ( $this->hasOption( 'used' ) ) { $this->mAction = 'fetchUsed'; } - if( isset( $args['shared'] ) ) { - if( isset( $args['used'] ) ) { + if ( $this->hasOption( 'shared' ) ) { + if ( $this->hasOption( 'used' ) ) { // Include shared-repo files in the used check $this->mShared = true; } else { @@ -35,39 +57,16 @@ class UploadDumper { $this->mSharedSupplement = true; } } - } - - function run() { - $this->{$this->mAction}( $this->mShared ); - if( $this->mSharedSupplement ) { + $this-> { $this->mAction } ( $this->mShared ); + if ( $this->mSharedSupplement ) { $this->fetchUsed( true ); } } - - function help() { - echo << list-o-files.txt -Options: ---base= Set base relative path instead of wiki include root - ---local List all local files, used or not. No shared files included. ---used Skip local images that are not used ---shared Include images used from shared repository - -END; - } - /** - * Fetch a list of all or used images from a particular image source. - * @param string $table - * @param string $directory Base directory where files are located - * @param bool $shared true to pass shared-dir settings to hash func + * Fetch a list of used images from a particular image source. + * + * @param $shared Boolean: true to pass shared-dir settings to hash func */ function fetchUsed( $shared ) { $dbr = wfGetDB( DB_SLAVE ); @@ -80,12 +79,16 @@ END; ON il_to=img_name"; $result = $dbr->query( $sql ); - foreach( $result as $row ) { + foreach ( $result as $row ) { $this->outputItem( $row->il_to, $shared ); } - $dbr->freeResult( $result ); } - + + /** + * Fetch a list of all images from a particular image source. + * + * @param $shared Boolean: true to pass shared-dir settings to hash func + */ function fetchLocal( $shared ) { $dbr = wfGetDB( DB_SLAVE ); $result = $dbr->select( 'image', @@ -93,28 +96,26 @@ END; '', __METHOD__ ); - foreach( $result as $row ) { + foreach ( $result as $row ) { $this->outputItem( $row->img_name, $shared ); } - $dbr->freeResult( $result ); } function outputItem( $name, $shared ) { $file = wfFindFile( $name ); - if( $file && $this->filterItem( $file, $shared ) ) { + if ( $file && $this->filterItem( $file, $shared ) ) { $filename = $file->getFullPath(); $rel = wfRelativePath( $filename, $this->mBasePath ); - echo "$rel\n"; + $this->output( "$rel\n" ); } else { wfDebug( __METHOD__ . ": base file? $name\n" ); } } - + function filterItem( $file, $shared ) { return $shared || $file->isLocal(); } } -$dumper = new UploadDumper( $options ); -$dumper->run(); - +$maintClass = "UploadDumper"; +require_once( DO_MAINTENANCE );