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