00001 <?php 00025 $originalDir = getcwd(); 00026 00027 $optionsWithArgs = array( 'pagelist', 'start', 'end' ); 00028 00029 require_once( 'commandLine.inc' ); 00030 require_once( 'backup.inc' ); 00031 00032 $dumper = new BackupDumper( $argv ); 00033 00034 if( isset( $options['quiet'] ) ) { 00035 $dumper->reporting = false; 00036 } 00037 00038 if ( isset( $options['pagelist'] ) ) { 00039 $olddir = getcwd(); 00040 chdir( $originalDir ); 00041 $pages = file( $options['pagelist'] ); 00042 chdir( $olddir ); 00043 if ( $pages === false ) { 00044 wfDie( "Unable to open file {$options['pagelist']}\n" ); 00045 } 00046 $pages = array_map( 'trim', $pages ); 00047 $dumper->pages = array_filter( $pages, create_function( '$x', 'return $x !== "";' ) ); 00048 } 00049 00050 if( isset( $options['start'] ) ) { 00051 $dumper->startId = intval( $options['start'] ); 00052 } 00053 if( isset( $options['end'] ) ) { 00054 $dumper->endId = intval( $options['end'] ); 00055 } 00056 $dumper->skipHeader = isset( $options['skip-header'] ); 00057 $dumper->skipFooter = isset( $options['skip-footer'] ); 00058 $dumper->dumpUploads = isset( $options['uploads'] ); 00059 00060 $textMode = isset( $options['stub'] ) ? WikiExporter::STUB : WikiExporter::TEXT; 00061 00062 if( isset( $options['full'] ) ) { 00063 $dumper->dump( WikiExporter::FULL, $textMode ); 00064 } elseif( isset( $options['current'] ) ) { 00065 $dumper->dump( WikiExporter::CURRENT, $textMode ); 00066 } elseif( isset( $options['stable'] ) ) { 00067 $dumper->dump( WikiExporter::STABLE, $textMode ); 00068 } elseif( isset( $options['logs'] ) ) { 00069 $dumper->dump( WikiExporter::LOGS ); 00070 } else { 00071 $dumper->progress( <<<ENDS 00072 This script dumps the wiki page database into an XML interchange wrapper 00073 format for export or backup. 00074 00075 XML output is sent to stdout; progress reports are sent to stderr. 00076 00077 Usage: php dumpBackup.php <action> [<options>] 00078 Actions: 00079 --full Dump complete history of every page. 00080 --current Includes only the latest revision of each page. 00081 --logs Dump action logs for every page. 00082 00083 Options: 00084 --quiet Don't dump status reports to stderr. 00085 --report=n Report position and speed after every n pages processed. 00086 (Default: 100) 00087 --server=h Force reading from MySQL server h 00088 --start=n Start from page_id n 00089 --end=n Stop before page_id n (exclusive) 00090 --skip-header Don't output the <mediawiki> header 00091 --skip-footer Don't output the </mediawiki> footer 00092 --stub Don't perform old_text lookups; for 2-pass dump 00093 --uploads Include upload records (experimental) 00094 00095 Fancy stuff: 00096 --plugin=<class>[:<file>] Load a dump plugin class 00097 --output=<type>:<file> Begin a filtered output stream; 00098 <type>s: file, gzip, bzip2, 7zip 00099 --filter=<type>[:<options>] Add a filter on an output branch 00100 00101 ENDS 00102 ); 00103 } 00104 00105