shell.php: prevent permission error
authorGergő Tisza <tgr.huwiki@gmail.com>
Sat, 23 Jun 2018 14:10:20 +0000 (16:10 +0200)
committerGergő Tisza <gtisza@wikimedia.org>
Thu, 5 Jul 2018 07:41:14 +0000 (07:41 +0000)
Avoid bobthecow/psysh#443[1] (PsySH using XDG_RUNTIME_DIR as temp
directory, which is inherited by the new user when doing sudo -E
but is only writable by the old user) by using the MediaWiki temp
dir.

[1]: https://github.com/bobthecow/psysh/issues/443

Change-Id: Ica9344cdf23323d264f66df03b9d82ccc0582e45

maintenance/shell.php

index c8a8a45..a67417f 100644 (file)
@@ -67,8 +67,12 @@ class MediaWikiShell extends Maintenance {
                // add this after initializing the code cleaner so all the default passes get added first
                $traverser->addVisitor( new CodeCleanerGlobalsPass() );
 
-               $config = new \Psy\Configuration( [ 'codeCleaner' => $codeCleaner ] );
+               $config = new \Psy\Configuration();
+               $config->setCodeCleaner( $codeCleaner );
                $config->setUpdateCheck( \Psy\VersionUpdater\Checker::NEVER );
+               // prevent https://github.com/bobthecow/psysh/issues/443 when using sudo -E
+               $config->setRuntimeDir( wfTempDir() );
+
                $shell = new \Psy\Shell( $config );
                if ( $this->hasOption( 'd' ) ) {
                        $this->setupLegacy();