d7a5875da41c098a60afe28c7ef2ce8207e7a472
[Packages/TYPO3.CMS.git] / typo3 / cli_dispatch.phpsh
1 #! /usr/bin/php -q
2 <?php
3
4 // *****************************************
5 // CLI module dispatcher.
6 // This script can take a "cliKey" as first argument and uses that to look up the path of the script to include in the end.
7 // See configuration of this feature in $TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['cliKeys']
8 // The point is to have only ONE script dealing with the environment initialization while the actual processing is all a developer should care for.
9 // *****************************************
10
11         // Defining circumstances for CLI mode:
12 define('TYPO3_cliMode', TRUE);
13
14         // Defining PATH_thisScript here: Must be the ABSOLUTE path of this script in the right context:
15         // This will work as long as the script is called by it's absolute path!
16 $temp_PATH_thisScript = isset($_ENV['_']) ? $_ENV['_'] : $_SERVER['_'];
17 $BACK_PATH = '';
18
19         // Alternatively, in some environments, we might be able to figure out the absolute path (with no "../" and "./" in) from environment variables...
20 if ($temp_PATH_thisScript{0}!='/')      {
21         $temp_CURRENT_DIR = $_SERVER['PWD'].'/';
22         $temp_PATH_thisScript = $temp_CURRENT_DIR.ereg_replace('\.\/','',$temp_PATH_thisScript);
23         if (!@is_file($temp_PATH_thisScript))   {
24                 die(wordwrap('ERROR: '.$temp_PATH_thisScript.' was not a file. Maybe your environment does not support running this script with a relative path? Try to run the script with its absolute path and you should be fine.'.chr(10).chr(10)));
25         }
26 }
27 define('PATH_thisScript',$temp_PATH_thisScript);
28
29         // First argument is a key that 
30 define('TYPO3_cliKey', $_SERVER["argv"][0]);
31
32         // Include init file:
33 require(dirname(PATH_thisScript).'/'.$BACK_PATH.'init.php');
34
35 if (defined('TYPO3_cliInclude'))        {
36         include(TYPO3_cliInclude);
37 } else {
38         echo 'ERROR: Nothing to include.'.chr(10);
39         exit;
40 }
41 ?>