[BUGFIX] Empty columns in Page Module view cause warnings
[Packages/TYPO3.CMS.git] / typo3 / cli_dispatch.phpsh
index 684222c..d6e10a3 100755 (executable)
@@ -1,9 +1,9 @@
-#! /usr/bin/php -q
+#! /usr/bin/env php
 <?php
 /***************************************************************
 *  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
  *
- * $Id: cli_dispatch.phpsh 2665 2007-11-05 19:38:07Z ingmars $
- *
- * @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 (PHP_SAPI!='cli') {
-       die('Not called from a command line interface (eg. a shell or scheduler).'.chr(10));
-}
-
-       // Defining circumstances for CLI mode:
+define('TYPO3_MODE', 'BE');
 define('TYPO3_cliMode', TRUE);
 
-       // Get path to this script
-$temp_PATH_thisScript = isset($_SERVER['argv'][0]) ? $_SERVER['argv'][0] : (isset($_ENV['_']) ? $_ENV['_'] : $_SERVER['_']);
+require __DIR__ . '/sysext/core/Classes/Core/CliBootstrap.php';
+\TYPO3\CMS\Core\Core\CliBootstrap::checkEnvironmentOrDie();
 
-       // Figure out if the path is relative
-$relativePath = FALSE;
-if (stristr(PHP_OS,'win') && !stristr(PHP_OS,'darwin')) {
-               // Windows
-       if (!preg_match('/^([A-Z]:)?\\\/', $temp_PATH_thisScript)) {
-               $relativePath = TRUE;
-       }
-} else {
-               // *nix, et al
-       if ($temp_PATH_thisScript{0} != '/') {
-               $relativePath = TRUE;
-       }
-}
-
-       // Resolve path
-if ($relativePath) {
-       $workingDirectory = $_SERVER['PWD'] ? $_SERVER['PWD'] : getcwd();
-       if ($workingDirectory) {
-               $temp_PATH_thisScript =
-                       $workingDirectory.'/'.ereg_replace('\.\/','',$temp_PATH_thisScript);
-               if (!@is_file($temp_PATH_thisScript)) {
-                       die ('Relative path found, but an error occured during resolving of the absolute path: '.$temp_PATH_thisScript.chr(10));
-               }
-       } else {
-               die ('Relative path found, but resolving absolute path is not supported on this platform.'.chr(10));
-       }
-}
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()
+       ->baseSetup('typo3/')
+       ->loadConfigurationAndInitialize()
+       ->loadTypo3LoadedExtAndExtLocalconf(TRUE)
+       ->applyAdditionalConfigurationSettings()
+       ->initializeTypo3DbGlobal(TRUE);
 
-       // Define absolute path to this script
-define('PATH_thisScript',$temp_PATH_thisScript);
-
-if (!isset($_SERVER['argv'][1]))       {
-       die ('The first argument must be a valid key.'.chr(10));
-}
+\TYPO3\CMS\Core\Core\CliBootstrap::initializeCliKeyOrDie();
 
-       // First argument is a key that points to the script configuration
-define('TYPO3_cliKey', $_SERVER['argv'][1]);
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()
+       ->loadExtensionTables(TRUE)
+       ->initializeBackendUser()
+       ->initializeBackendUserMounts()
+       ->initializeLanguageObject();
 
-       // Include init file:
-require(dirname(PATH_thisScript).'/init.php');
+       // 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);
-} else {
-       die('No include file configured for key "'.TYPO3_cliKey.'".'.chr(10));
+} catch (\Exception $e) {
+       fwrite(STDERR, $e->getMessage() . LF);
+       exit(99);
 }
 
-?>
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->shutdown();
+?>
\ No newline at end of file