Beispiel #1
0
 function start($cli = false, $mods = '', $overwrite = '')
 {
     $ff = HTML_Flexyframework::get();
     $this->scanModules();
     //echo '<PRE>'; print_r($this->modtables); exit;
     $options =& PEAR::getStaticProperty('DB_DataObject', 'options');
     $proj = 'pman';
     //ucfirst(basename($options['database']));
     // we are going to generate all of the code into a temporay foldler..
     $user = posix_getpwuid(posix_getuid());
     $options['rootDir'] = ini_get('session.save_path') . '/temp_' . $proj . '_' . $user['name'];
     $options['cli'] = $cli;
     $options['mods'] = empty($mods) ? array() : explode('/', $mods);
     if (!file_exists($options['rootDir'])) {
         mkdir($options['rootDir'], 0775, true);
     }
     $this->rootDir = $options['rootDir'];
     $options['schema_location'] = $this->rootDir . '/' . $proj . '/DataObjects';
     $options['class_location'] = $this->rootDir . '/' . $proj . '/DataObjects';
     $options['require_prefix'] = $proj . '/DataObjects/';
     $options['class_prefix'] = $proj . '_DataObjects_';
     //  print_r($this);exit;
     $this->importSQL();
     $standard_database = $options['database'];
     parent::start();
     $this->scanModules();
     require_once 'System.php';
     $diff = System::which('diff');
     // now for each of the directories copy/show diffs..
     echo $cli ? '' : '<PRE>';
     $flist = explode(',', $overwrite);
     foreach ($this->modtables as $m => $ar) {
         if ($options['database'] != $standard_database) {
             $options['database'] = $standard_database;
             parent::start();
         }
         $options['database'] = $standard_database;
         if (isset($options['database_' . $m])) {
             $options['database'] = $options['database_' . $m];
             //var_dump($url);exit;
             // start again?
             parent::start();
         }
         if (!empty($options['mods']) && !in_array($m, $options['mods'])) {
             continue;
         }
         foreach (scandir($options['rootDir'] . '/' . $m) as $f) {
             if (!strlen($f) || $f[0] == '.') {
                 continue;
             }
             // does it exist!!!
             $src = $options['rootDir'] . "/{$m}/{$f}";
             $tg = $ff->page->rootDir . "/Pman/{$m}/DataObjects/{$f}";
             if (preg_match('/\\.js$/', $f)) {
                 $tg = $ff->page->rootDir . "/Pman/{$m}/{$f}";
             }
             if (!file_exists($tg) || !filesize($tg)) {
                 if ($cli && in_array($f, $flist)) {
                     echo "COPY {$src} {$tg}" . ($cli ? "\n" : "<BR>");
                     copy($src, $tg);
                     continue;
                 }
                 echo "!!!!MISSING!!! {$tg}" . ($cli ? "\n" : "<BR>");
                 continue;
             }
             // always copy readers and ini file.=  nope - not on live..
             if ($cli && in_array($f, $flist)) {
                 //|| $f=='pman.ini' || preg_match('/\.js$/', $f))) {
                 echo "COPY {$src} {$tg}" . ($cli ? "\n" : "<BR>");
                 copy($src, $tg);
                 continue;
             }
             // diff the two..
             $cmd = "{$diff} -u -w " . escapeshellarg($tg) . ' ' . escapeshellarg($src);
             $out = array();
             $ret = 0;
             exec($cmd, $out, $ret);
             if ($ret == 0) {
                 // files match..
                 continue;
             }
             // var_dump($ret);
             echo "\n" . implode("\n", $out) . "\n";
         }
     }
 }
Beispiel #2
0
// | available at through the world-wide-web at                           |
// | http://www.php.net/license/2_02.txt.                                 |
// | If you did not receive a copy of the PHP license and are unable to   |
// | obtain it through the world-wide-web, please send a note to          |
// | license@php.net so we can mail you a copy immediately.               |
// +----------------------------------------------------------------------+
// | Author:  Alan Knowles <*****@*****.**>
// +----------------------------------------------------------------------+
//
// $Id: createTables.php,v 1.1.1.1 2005/04/29 04:44:36 lux Exp $
//
require_once 'DB/DataObject/Generator.php';
if (!ini_get('register_argc_argv')) {
    PEAR::raiseError("\nERROR: You must turn register_argc_argv On in you php.ini file for this to work\neg.\n\nregister_argc_argv = On\n\n", null, PEAR_ERROR_DIE);
    exit;
}
if (!@$_SERVER['argv'][1]) {
    PEAR::raiseError("\nERROR: createTable.php usage:\n\nC:\\php\\pear\\DB\\DataObjects\\createTable.php example.ini\n\n", null, PEAR_ERROR_DIE);
    exit;
}
$config = parse_ini_file($_SERVER['argv'][1], true);
$options =& PEAR::getStaticProperty('DB_DataObject', 'options');
$options = $config['DB_DataObject'];
if (!$options) {
    PEAR::raiseError("\nERROR: could not read ini file\n\n", null, PEAR_ERROR_DIE);
    exit;
}
//DB_DataObject::debugLevel(5);
$generator = new DB_DataObject_Generator();
$generator->start();
function regenerateDataObject()
{
    $generator = new DB_DataObject_Generator();
    $generator->start();
}