[BUGFIX] Empty columns in Page Module view cause warnings
[Packages/TYPO3.CMS.git] / typo3 / cli_dispatch.phpsh
index a768609..d6e10a3 100755 (executable)
@@ -3,7 +3,7 @@
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 2005-2008 Kasper Skaarhoj (kasperYYYY@typo3.com)
+*  (c) 2005-2012 Kasper Skaarhoj (kasperYYYY@typo3.com)
 *  All rights reserved
 *
 *  This script is part of the TYPO3 project. The TYPO3 project is
 /**
  * Command Line Interface module dispatcher
  *
- * @author      Kasper Skaarhoj <kasperYYYY@typo3.com>
- *
- * This script takes a "cliKey" as first argument and uses that to look up the path of the script to include in the end.
- * See configuration of this feature in $TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['cliKeys'].
- * The point is to have only ONE script dealing with the environment initialization while the actual processing is all a developer should care for.
+ * This script takes a "cliKey" as first argument and uses that to dispatch
+ * the call to a registered script with that key.
+ * Valid cliKeys must be registered in
+ * $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['GLOBAL']['cliKeys'].
  *
+ * @author Kasper Skaarhoj <kasperYYYY@typo3.com>
  */
-
-if (substr(php_sapi_name(), 0, 3) == 'cgi') {
-        // sanity check: ensure that we're running in a shell or cronjob (and NOT via HTTP)
-        $checkEnvVars = array('HTTP_USER_AGENT', 'HTTP_HOST', 'SERVER_NAME', 'REMOTE_ADDR', 'REMOTE_PORT', 'SERVER_PROTOCOL');
-        foreach ($checkEnvVars as $var) {
-                if (array_key_exists($var, $_SERVER)) {
-                        echo 'SECURITY CHECK FAILED! This script cannot be used within your browser!' . chr(10);
-                        echo 'If you are sure that we run in a shell or cronjob, please unset' . chr(10);
-                        echo 'environment variable ' . $var . ' (usually using \'unset ' . $var . '\')' . chr(10);
-                        echo 'before starting this script.' . chr(10);
-                        exit;
-                }
-        }
-        unset($checkEnvVars);
-
-       // mimic CLI API in CGI API (you must use the -C/-no-chdir and the -q/--no-header switches!)
-       ini_set('html_errors', 0);
-       ini_set('implicit_flush', 1);
-       ini_set('max_execution_time', 0);
-       if (!ini_get('register_argc_argv')) {
-               $argv = $_SERVER['argv'];
-               $argc = $_SERVER['argc'];
-       }
-       define(STDIN, fopen('php://stdin', 'r'));
-       define(STDOUT, fopen('php://stdout', 'w'));
-       define(STDERR, fopen('php://stderr', 'w'));
-} elseif (php_sapi_name() != 'cli') {
-       die('Not called from a command line interface (e.g. a shell or scheduler).' . chr(10));
-}
-
-       // Defining circumstances for CLI mode:
+define('TYPO3_MODE', 'BE');
 define('TYPO3_cliMode', TRUE);
 
+require __DIR__ . '/sysext/core/Classes/Core/CliBootstrap.php';
+\TYPO3\CMS\Core\Core\CliBootstrap::checkEnvironmentOrDie();
 
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()
+       ->baseSetup('typo3/')
+       ->loadConfigurationAndInitialize()
+       ->loadTypo3LoadedExtAndExtLocalconf(TRUE)
+       ->applyAdditionalConfigurationSettings()
+       ->initializeTypo3DbGlobal(TRUE);
 
-if (!isset($_SERVER['argv'][1]))       {
-       fwrite(STDERR, 'The first argument must be a valid key.' . chr(10));
-       exit(1);
-}
-
-       // First argument is a key that points to the script configuration
-define('TYPO3_cliKey', $_SERVER['argv'][1]);
+\TYPO3\CMS\Core\Core\CliBootstrap::initializeCliKeyOrDie();
 
-       // Include init file:
-require(dirname(__FILE__) . '/init.php');
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()
+       ->loadExtensionTables(TRUE)
+       ->initializeBackendUser()
+       ->initializeBackendUserMounts()
+       ->initializeLanguageObject();
 
-       // Make sure output is not buffered,
-       // so that command-line output and interaction can take place
-t3lib_div::flushOutputBuffers();
+       // Make sure output is not buffered, so command-line output and interaction can take place
+\TYPO3\CMS\Core\Utility\GeneralUtility::flushOutputBuffers();
 
-if (defined('TYPO3_cliInclude')) {
-       try {
-               include(TYPO3_cliInclude);
-       } catch (Exception $e) {
-               fwrite(STDERR, $e->getMessage() . LF);
-               exit(99);
-       }
-} else {
-       fwrite(STDERR,  'No include file configured for key "'.TYPO3_cliKey.'".' . LF);
-       exit(1);
+try {
+       include(TYPO3_cliInclude);
+} catch (\Exception $e) {
+       fwrite(STDERR, $e->getMessage() . LF);
+       exit(99);
 }
 
-?>
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->shutdown();
+?>
\ No newline at end of file