fix resolving of customfield record values
[tine20] / bin / tn.php
1 <?php
2 /**
3  * Script for code generation
4  *
5  * @package     Tine_Tool
6  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
7  * @author      Flávio Gomes da Silva Lisboa <flavio.lisboa@serpro.gov.br>
8  * @copyright   Copyright (c) 2014 Metaways Infosystems GmbH (http://www.metaways.de)
9  * @version     $Id$ 
10  */
11
12 define('APPLICATION','Application');
13
14 main();
15
16 function main()
17 {
18     prepareEnvironment();
19
20     try {
21         $opts = new Zend_Console_Getopt(array(
22                 'create application|a=s'=>'create application option with required string parameter',
23                 'help'=>'help option with no required parameter'
24         )
25         );
26         $opts->parse();
27     } catch (Zend_Console_Getopt_Exception $e) {
28         echo $e->getUsageMessage();
29         exit;
30     }
31
32     if ($applicationName = $opts->getOption('a'))
33     {
34         echo create(APPLICATION, array($applicationName));
35         exit;
36     }
37     echo "UNEXPECTED ERROR: missing argument. Type tn -help to see parameters \n";
38     exit;
39 }
40
41 /**
42  * Sets the include path and loads autoloader classes
43  */
44 function prepareEnvironment()
45 {
46     $paths = array(
47             realpath(__DIR__ . '/../tine20'),
48             realpath(__DIR__ . '/../tine20/library'),
49             get_include_path()
50     );
51     set_include_path(implode(PATH_SEPARATOR, $paths));
52
53     require_once realpath(__DIR__ . '/../tine20') . '/bootstrap.php';
54 }
55
56 /**
57  * Creates an instance of a class that knows how to build the requested structure
58  * Command can executed from everywhere, because the path is determined by __DIR__
59  * @param string $builder
60  * @param array $args
61  * @return string message
62  */
63 function create($builder, array $args)
64 {
65     // last argument is path of Tine 2.0
66     $args[] = realpath(__DIR__ . '/../tine20');
67
68     $className = 'Tool_CodeGenerator_' . $builder;
69     $tcg = new $className();
70     return $tcg->build($args);
71 }