The CliInstaller used the '0' exit code whenever the status was not OK.
That makes third party script assuming the install actually ran fine
since a 0 exit code is mostly considered as a success. By sending an
error code > 0 (here 1), our automatic installers will be able to catch
the failure and stop proceeding.
I had that issue with a Jenkins job which ran the CLI installer and kept
continuing although there was an error about LocalSettings.php already
existing.
Change-Id: I4f4727df85c09c0a04e4630df91c6213dfce6e9a
...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
* 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 Status::getWikiTextArray() to allow different ways of formating a bunch of status messages (e.g. CLI output)
* Clean up messages in CliInstaller, use more i18n
* Use warning messages from Status return object in CLI installer
* Make Installer::isCompiled static so we don't have to create an object just to see that we can't use it.
* Add Installer::addInstallStepFollowing so we don't have MySQLInstaller mucking in its parent's data
* Make sure output only happens in the top-level Installer implementations.
* Differentiate Status warning messages from Status error messages in the Installer.
* Change abstract method from Install::showStatusError() to Install::showStatusMessage() since we'll use it to show warnings now, too.
* TODO Need a better way to extract/display Status warning messages since, from my look at the Status class, it looks like warnings are implemented, but not really used.
* 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)