Merge "Fix sessionfailure i18n message during authentication"
[lhc/web/wiklou.git] / maintenance / undelete.php
index c890c69..e9b2abd 100644 (file)
@@ -26,7 +26,7 @@ require_once __DIR__ . '/Maintenance.php';
 class Undelete extends Maintenance {
        public function __construct() {
                parent::__construct();
-               $this->mDescription = "Undelete a page";
+               $this->addDescription( 'Undelete a page' );
                $this->addOption( 'user', 'The user to perform the undeletion', false, true, 'u' );
                $this->addOption( 'reason', 'The reason to undelete', false, true, 'r' );
                $this->addArg( 'pagename', 'Page to undelete' );
@@ -35,24 +35,28 @@ class Undelete extends Maintenance {
        public function execute() {
                global $wgUser;
 
-               $user = $this->getOption( 'user', 'Command line script' );
+               $user = $this->getOption( 'user', false );
                $reason = $this->getOption( 'reason', '' );
                $pageName = $this->getArg();
 
                $title = Title::newFromText( $pageName );
                if ( !$title ) {
-                       $this->error( "Invalid title", true );
+                       $this->fatalError( "Invalid title" );
+               }
+               if ( $user === false ) {
+                       $wgUser = User::newSystemUser( 'Command line script', [ 'steal' => true ] );
+               } else {
+                       $wgUser = User::newFromName( $user );
                }
-               $wgUser = User::newFromName( $user );
                if ( !$wgUser ) {
-                       $this->error( "Invalid username", true );
+                       $this->fatalError( "Invalid username" );
                }
-               $archive = new PageArchive( $title );
+               $archive = new PageArchive( $title, RequestContext::getMain()->getConfig() );
                $this->output( "Undeleting " . $title->getPrefixedDBkey() . '...' );
-               $archive->undelete( array(), $reason );
+               $archive->undelete( [], $reason );
                $this->output( "done\n" );
        }
 }
 
-$maintClass = "Undelete";
+$maintClass = Undelete::class;
 require_once RUN_MAINTENANCE_IF_MAIN;