We can now do this since we finally switched to PHP 5.3 for MW 1.20 and get rid of the silly dirname(__FILE__) stuff :)
Change-Id: Id9b2c9cd2e678197aa81c78adced5d1d31ff57b1
...after a discussion with Debian packagers. They can now override installer
classes and change LocalSettings.php the installer generates. The file
intended for such overrides, mw-config/overrides.php, has intentionally been
placed outside of includes to underline the "don't change includes" paradigm.
Change-Id: Id82b90f6740307609bc6c6f4fb8765bc3484dbe7
the command line, so that it isn't exposed in the process list.
Sadly, use of /dev/stdin or <(process) doesn't work in Linux,
since they are shown as symlinks to pipe:[12345678] and php
dereferences all of them. It has to be a real file.
However, such constructs work in Solaris, where they are
presented as character devices.
Until now, we relied on setting MW_NO_SETUP which was a) hacky, b) irreversable, and c) likely to be forgotten if you didn't use one of the wrappers like runChild().
Instead, move the freaky magic to doMaintenance and have *it* check if it's in a specific call stack that indicates this is being run from the file scope and should be executed. Rename DO_MAINTENANCE to RUN_MAINTENANCE_IF_MAIN so it's nice and clear what magic happens behind the require_once().
* Add --upgrade option to CLI installer so we can throw an error when LocalSettings.php is present and provide an upgrade route to the user.
* Fixup CLI's showStatusMessage so allow CLI to throw an error and quit
* add beginning of CliInstallerOutput class
* make it possible to override LocalSettings from a maint script
* make basic cli installation possible (only tested mysql so far)
* This is not complete yet, and should not be used outside of testing. Using it on a production database may ruin everything. This is the reason for the second entry point of new-index.php. You've been warned.
* Known issues are at [[mw:New-installer_issues]]. Please add new items to the list if you find them.