/**
*
- * Generate DataObjects... and readers in the right places..
+ * Generate DataObjects...
+ *
+ * This does not generate ini files any more - as that is done on the fly by the framework.
*
* note - we write to a temporary directory first...
*
$standard_database = $options['database'];
-
+ var_dump($options);exit;
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) {
if (!strlen($f) || $f[0] == '.') {
continue;
if (!file_exists($tg) || !filesize($tg) ) {
- if ($cli && in_array($f, $flist)) {
- echo "COPY $src $tg" . ($cli ? "\n" : "<BR>");
+ if ($cli && !filesize($tg) || in_array($f, $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');
$url['user'] = '*****';
$url['host'] = '*****';
}
-
-
require_once 'System.php';
$cat = System::which('cat');
foreach($this->modsql as $m => $fl)
{
if ($cli && isset($options['database_'. $m])) {
- $url =parse_url($options['database_'.$m]);
+ $url = parse_url($options['database_'.$m]);
}
$mysql_cmd = $mysql .
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) {
if (in_array($this->table, $ignore)) {
continue;
}
-
-
- die("No existing DataObject file found for table {$this->table}
+ if (empty($mods)) {
+
+ die("No existing DataObject file found for table {$this->table}
+
- either add it to Pman_Builder[skip_tables] or\n
+- run generator and specify that module..
- create an empty file in the related Module/DataObjects directory
eg.
touch Pman/????/DataObjects/".ucfirst($this->table).".php
-
-");
-
+
+ ");
+ }
+ // use mods to determine where it should output to..
+ //var_dump($mods);exit;
+ $this->modmap[$tn] = $mods[0];
+
+
}
$mod = $this->modmap[$tn];
$inis[$mod] = isset($inis[$mod]) ? $inis[$mod] : '';
$inis[$mod] .= $this->_newConfig;
}
-
- //echo '<PRE>';print_r($this->_inis); exit;
- $options = PEAR::getStaticProperty('DB_DataObject','options');
-
- $rd = $options['rootDir'];
- foreach($inis as $m=>$ini) {
- if (!empty($mods) && !in_array($m, $mods)) {
- continue;
- }
-
- if (!file_exists($rd.'/'.$m)) {
- mkdir($rd.'/'.$m, 0775, true);
- }
- $fname = '/pman.ini';
- if (isset($options['database_'. $m])) {
- $url = parse_url($options['database_'.$m]);
- $fname = '/'. basename($url['path']).'.ini';
- }
-
-
- file_put_contents($rd.'/'.$m.$fname, $ini);
- }
-
+ return; // we do not generate in ifiles any more..
}
// file_get_contents???
- $oldcontents = file_get_contents($orig);
+
+ $oldcontents = file_exists($orig) ? file_get_contents($orig) : '';
echo "GENERATE: " . $this->classname . ($cli ? "\n" : "<BR>");
$out = preg_replace('/(\n|\r\n)\s*function staticGet[^\n]+(\n|\r\n)/s', '', $out);
$out = preg_replace('#/\* Static get \*/#s', '', $out);
-
+ if (!file_exists(dirname($outfilename))) {
+ mkdir(dirname($outfilename), 0755, true);
+ }
// $this->debug( "writing $this->classname\n");
//$tmpname = tempnam(session_save_path(),'DataObject_');
file_put_contents($outfilename, $out);
// print_r( $this->def['colmodels'][$table]);
//print_r($this->def['readers'][$table]); exit;
- }
-
+
function writeFileEx($n, $f, $str)
{