class Pman_Core_Generator extends DB_DataObject_Generator
{
-
+
+ function getAuth()
+ {
+
+ die("do not use this directly.. - use Core/RunGenerator");
+
+ }
// inherrited..
// $tablekeys
// we always overwrite the definition!!!
// set to array('all') to overwrite everything!!!
- function start($cli=false, $mods='', $overwrite='')
+ function start($cli=false, $mods='', $overwrite=array())
{
$ff = HTML_Flexyframework::get();
// print_r($this);exit;
- $this->importSQL();
-
$standard_database = $options['database'];
-
+
$diff = System::which('diff');
// now for each of the directories copy/show diffs..
echo $cli ? '' : '<PRE>';
- $flist = explode(',', $overwrite);
+ $flist = $overwrite;
foreach($this->modtables as $m=>$ar) {
if ($options['database'] != $standard_database) {
$options['database'] = $standard_database ;
if (!empty($options['mods'] ) && !in_array($m, $options['mods'] )) {
continue;
}
+ // this happens when we have no database tables from a module,
+ // but module code has been defined.
+ if (!file_exists($options['rootDir'].'/'.$m)) {
+ continue;
+ }
foreach(scandir($options['rootDir'].'/'.$m) as $f) {
+
+ echo "SCAN {$options['rootDir']} $f\n";
+
if (!strlen($f) || $f[0] == '.') {
continue;
}
if (!file_exists($tg) || !filesize($tg) ) {
- if ($cli && !filesize($tg) || in_array($f, $flist)) {
+ if ($cli && file_exists($tg) || in_array($f, $flist) || in_array('_all_', $flist )) {
echo "COPY $src $tg" . ($cli ? "\n" : "<BR>");
copy($src, $tg);
continue;
continue;
}
// always copy readers and ini file.= nope - not on live..
- if ($cli && in_array($f, $flist)) {
+ if ($cli && in_array($f, $flist) || in_array('_all_', $flist )) {
//|| $f=='pman.ini' || preg_match('/\.js$/', $f))) {
echo "COPY $src $tg". ($cli ? "\n" : "<BR>");
}
- /**
- * imports SQL files from all DataObjects directories....
- *
- * except any matching /migrate/
- */
- function importSQL()
- {
- $options = &PEAR::getStaticProperty('DB_DataObject','options');
-
- $ff = HTML_Flexyframework::get();
-
- $url = parse_url($options['database']);
- // hide stuff for web..
- $cli = $options['cli'];
- if (!$cli) {
- $url['pass'] = '*****';
- $url['user'] = '*****';
- $url['host'] = '*****';
- }
-
- require_once 'System.php';
- $cat = System::which('cat');
- $mysql = System::which('mysql');
- print_r($options['mods'] );
- foreach($this->modsql as $m => $fl)
- {
- if ($cli && isset($options['database_'. $m])) {
- $url = parse_url($options['database_'.$m]);
- }
-
- $mysql_cmd = $mysql .
- ' -h ' . $url['host'] .
- ' -u' . escapeshellarg($url['user']) .
- (!empty($url['pass']) ? ' -p' . escapeshellarg($url['pass']) : '') .
- ' ' . basename($url['path']);
-
- echo $mysql_cmd . "\n" ;
-
- if (!empty($options['mods'] ) && !in_array($m, $options['mods'] )) {
- continue;
- }
-
- foreach($fl as $f) {
- $fn = $ff->page->rootDir. "/Pman/$m/DataObjects/$f";
- if (preg_match('/migrate/i', $f)) { // skip migration scripts at present..
- continue;
- }
-
- $cmd = $cat . ' ' . escapeshellarg($fn) . " | $mysql_cmd -f ";
- echo $cmd. ($cli ? "\n" : "<BR>\n");
- if ($cli) {
- passthru($cmd);
- }
-
- }
- }
-
-
-
- }
+
/**
* Scan the folders for DataObjects
* - Use the list of php files in DataObjects folders
$cli = $options['cli'];
foreach($this->tables as $this->table) {
+
$this->table = trim($this->table);
$tn = strtolower($this->table);
$mod = $this->modmap[$tn];
continue;
}
+ $clean_table = preg_replace('/[^A-Z0-9]+/i','_',ucfirst(trim($this->table)));
- $this->classname = 'Pman_'.$mod . '_DataObjects_'. ucfirst($this->table); // replace odd chars?
+ $this->classname = 'Pman_'.$mod . '_DataObjects_'. $clean_table; // replace odd chars?
- $outfilename = $rd.'/'.$mod.'/'. ucfirst($this->table).'.php';
- $orig = $ff->page->rootDir .'/Pman/'.$mod.'/DataObjects/'. ucfirst($this->table).'.php';
+ $outfilename = $rd.'/'.$mod.'/'. $clean_table .'.php';
+ $orig = $ff->page->rootDir .'/Pman/'.$mod.'/DataObjects/'. $clean_table.'.php';
// file_get_contents???