wiki.techinc.nl/maintenance/version.php
Derick A 3e92cf9cde maintenance: Print version of MediaWiki on the command prompt
In the past, $wgVersion was the global container used to keep
track of the version of MediaWiki. It was recently moved to a
constant (MW_VERSION).

Sometimes, it's difficult to know the current version of a MW
install unless checked via Special:Version (on the web interface).
This script is to make a quick command line based version checker
of MediaWiki so when someone is working on a patch and wants to
quickly know which version of MW that master is on (as this is
changing from time to time and no quick way to know if by developers).

It's a very simple script and to run it on your command line, do:

`php maintenance/version.php`

and you'll get a response with the MW version number and other info.
Also, it attempts to check that if the version is an LTS and appends
it to the version number and also build date which is the latest commit
tracked by git.

Change-Id: I547f3e7328cf3f18b9d414619b757efc81e63081
2020-08-23 23:20:44 +00:00

73 lines
2.1 KiB
PHP

<?php
/**
* Prints the version of MediaWiki.
*
* 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
* @author Derick Alangi
* @since 1.36
*/
require_once __DIR__ . '/Maintenance.php';
/**
* @ingroup Maintenance
*/
class Version extends Maintenance {
public function __construct() {
parent::__construct();
$this->addDescription( 'Prints the current version of MediaWiki' );
}
public function execute() {
if ( !defined( 'MW_VERSION' ) ) {
$this->fatalError( "MediaWiki version not defined or unknown" );
}
global $IP;
$contentLang = \MediaWiki\MediaWikiServices::getInstance()->getContentLanguage();
$version = MW_VERSION;
$strictVersion = substr( $version, 0, 4 );
$isLTS = false;
// See: https://www.mediawiki.org/wiki/Topic:U4u94htjqupsosea
if ( $strictVersion >= '1.19' ) {
$x = (float)explode( '.', $strictVersion )[1];
$isLTS = ( $x - 19 ) % 4 === 0;
}
// Get build date and append if available
$gitInfo = new GitInfo( $IP );
$gitHeadCommitDate = $gitInfo->getHeadCommitDate();
$buildDate = $contentLang->timeanddate( $gitHeadCommitDate, true );
$text = "MediaWiki version: " . $version;
if ( $isLTS ) {
$text .= " LTS";
}
if ( $buildDate ) {
$text .= " (built: $buildDate)";
}
$this->output( $text . "\n" );
}
}
$maintClass = Version::class;
require_once RUN_MAINTENANCE_IF_MAIN;