X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2Feval.php;h=5aefe1c970e531ceb32a22f9b7754b48f20cb871;hb=1a9b7b2238c4da398a06ac89fbe2cd418be42e6e;hp=9ef4958fbf01d670ce5d3c403d281fbe61c72d13;hpb=db6c4af2716bdf984de450821eca75bfc134395d;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/eval.php b/maintenance/eval.php old mode 100755 new mode 100644 index 9ef4958fbf..5aefe1c970 --- a/maintenance/eval.php +++ b/maintenance/eval.php @@ -9,29 +9,76 @@ * are evaluated separately, so blocks need to be input without a line break. * Fatal errors such as use of undeclared functions can kill the shell. * - * To get decent line editing behavior, you should compile PHP with support + * To get decent line editing behavior, you should compile PHP with support * for GNU readline (pass --with-readline to configure). * - * @package MediaWiki - * @subpackage Maintenance + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * http://www.gnu.org/copyleft/gpl.html + * + * @file + * @ingroup Maintenance */ +$optionsWithArgs = array( 'd' ); + /** */ -require_once( "commandLine.inc" ); +require_once( __DIR__ . "/commandLine.inc" ); + +if ( isset( $options['d'] ) ) { + $d = $options['d']; + if ( $d > 0 ) { + $wgDebugLogFile = '/dev/stdout'; + } + if ( $d > 1 ) { + $lb = wfGetLB(); + $serverCount = $lb->getServerCount(); + for ( $i = 0; $i < $serverCount; $i++ ) { + $server = $lb->getServerInfo( $i ); + $server['flags'] |= DBO_DEBUG; + $lb->setServerInfo( $i, $server ); + } + } + if ( $d > 2 ) { + $wgDebugFunctionEntry = true; + } +} -do { - $line = readconsole( "> " ); +$useReadline = function_exists( 'readline_add_history' ) + && Maintenance::posix_isatty( 0 /*STDIN*/ ); + +if ( $useReadline ) { + $historyFile = isset( $_ENV['HOME'] ) ? + "{$_ENV['HOME']}/.mweval_history" : "$IP/maintenance/.mweval_history"; + readline_read_history( $historyFile ); +} + +while ( ( $line = Maintenance::readconsole() ) !== false ) { + if ( $useReadline ) { + readline_add_history( $line ); + readline_write_history( $historyFile ); + } $val = eval( $line . ";" ); - if( is_null( $val ) ) { + if ( wfIsHipHop() || is_null( $val ) ) { echo "\n"; - } elseif( is_string( $val ) || is_numeric( $val ) ) { + } elseif ( is_string( $val ) || is_numeric( $val ) ) { echo "$val\n"; } else { var_dump( $val ); } - if ( function_exists( "readline_add_history" ) ) { - readline_add_history( $line ); - } -} while ( 1 ); +} + +print "\n"; + -?>