Updated exit codes as constant values
Re-allocated exit status codes according to three references, which follow:
BSD sysexits.h:http://www.gsp.com/cgi-bin/man.cgi?section=3&topic=sysexits
GNU recomendations:http://www.gnu.org/software/libc/manual/html_node/Exit-Status.html
Bash scripting:http://tldp.org/LDP/abs/html/exitcodes.html
The GNU recommendations stem from and expand upon the standard C/C++ library (stdlibc)
definitions, while also suggesting some best-practice conventions which happen to prevent
exit status code collisions with bash, and probably other shells.
The re-allocated codes are now mapped to constant values, set in *application/config/constants.php*,
and used throughout the CodeIgniter core. They would additionally be used in *index.php*,
but the constants file hasn't been loaded at that point, so the integer values are used
instead, and a comment follows each such use with amplifying information on why that
particular value was selected.
Finally, the errors documentation has been updated accordingly.
Signed-off-by: Daniel Hunsaker <danhunsaker@gmail.com>
diff --git a/system/core/Common.php b/system/core/Common.php
index 3cd97dc..479f0da 100644
--- a/system/core/Common.php
+++ b/system/core/Common.php
@@ -177,7 +177,7 @@
// self-referencing loop with the Exceptions class
set_status_header(503);
echo 'Unable to locate the specified class: '.$class.'.php';
- exit(2);
+ exit(EXIT_UNK_CLASS);
}
// Keep track of what we just loaded
@@ -251,7 +251,7 @@
{
set_status_header(503);
echo 'The configuration file does not exist.';
- exit(1);
+ exit(EXIT_CONFIG);
}
// Does the $config array exist in the file?
@@ -259,7 +259,7 @@
{
set_status_header(503);
echo 'Your config file does not appear to be formatted correctly.';
- exit(1);
+ exit(EXIT_CONFIG);
}
// Are any values being dynamically replaced?
@@ -374,12 +374,16 @@
$status_code = abs($status_code);
if ($status_code < 100)
{
- $exit_status = $status_code + 28;
+ $exit_status = $status_code + EXIT__AUTO_MIN;
+ if ($exit_status > EXIT__AUTO_MAX)
+ {
+ $exit_status = EXIT_FAILURE;
+ }
$status_code = 500;
}
else
{
- $exit_status = 27;
+ $exit_status = EXIT_FAILURE;
}
$_error =& load_class('Exceptions', 'core');
@@ -407,7 +411,7 @@
{
$_error =& load_class('Exceptions', 'core');
$_error->show_404($page, $log_error);
- exit(4);
+ exit(EXIT_UNK_FILE);
}
}