'max' => 1,
),
-
+ 'json-company' => array(
+ 'desc' => 'Company JSON file',
+ 'default' => '',
+ 'min' => 1,
+ 'max' => 1,
+
+ ),
+ 'json-person' => array(
+ 'desc' => 'Person JSON file',
+ 'default' => '',
+ 'min' => 1,
+ 'max' => 1,
+
+ ),
);
- var $cli_options = false;
+ static function cli_opts()
+ {
+
+ $ret = self::$cli_opts;
+ $ff = HTML_FlexyFramework::get();
+ $a = new Pman();
+ $mods = $a->modulesList();
+ foreach($mods as $m) {
+
+ $fd = $ff->rootDir. "/Pman/$m/UpdateDatabase.php";
+ if (!file_exists($fd)) {
+ continue;
+ }
+
+ require_once $fd;
+
+ $cls = new ReflectionClass('Pman_'. $m . '_UpdateDatabase');
+
+ $ret = array_merge($ret, $cls->getStaticPropertyValue('cli_opts'));
+
+
+ }
+
+ return $ret;
+ }
+
+ var $opts = false;
+
var $cli = false;
function getAuth() {
function get($args, $opt)
{
- $this->cli_options = $opt;
+ $this->opts = $opt;
+
+ // ask all the modules to verify the opts
+
+ $this->checkOpts($opt);
+
+
if($args == 'Person'){
if(empty($opt['source']) || empty($opt['prefix'])){
// if init has been called
// look in pgsql.ini
- if (!empty($this->cli_options['init'])) {
+ if (!empty($this->opts['init'])) {
$this->importpgsqldir($dburl, $this->rootDir. "/Pman/$m/pgsql.init");
- $this->importpgsqldir($dburl, $this->rootDir. "/Pman/$m/pgsql.initdata");
- $this->fixSequencesPgsql();
}
$this->importpgsqldir($dburl, $this->rootDir. "/Pman/$m/sql");
$this->importpgsqldir($dburl, $this->rootDir. "/Pman/$m/pgsql");
+
+
+
+ if (!empty($this->opts['init']) && file_exists($this->rootDir. "/Pman/$m/pgsql.initdata")) {
+ HTML_FlexyFramework::get()->generateDataobjectsCache(true);
+
+ $this->importpgsqldir($dburl, $this->rootDir. "/Pman/$m/pgsql.initdata");
+ $this->fixSequencesPgsql();
+
+ }
}
return $fn;
}
+
+ function checkOpts($opts)
+ {
+
+
+ foreach($opts as $o=>$v) {
+ if (!preg_match('/^json-/', $o) || empty($v)) {
+ continue;
+ }
+ if (!file_exists($v)) {
+ die("File does not exist : OPTION --{$o} = {$v} \n");
+ }
+ }
+
+ $modules = array_reverse($this->modulesList());
+
+ // move 'project' one to the end...
+
+ foreach ($modules as $module){
+ $file = $this->rootDir. "/Pman/$module/UpdateDatabase.php";
+ if($module == 'Core' || !file_exists($file)){
+ continue;
+ }
+ require_once $file;
+ $class = "Pman_{$module}_UpdateDatabase";
+ $x = new $class;
+ if(!method_exists($x, 'checkOpts')){
+ continue;
+ };
+ $x->checkOpts($opts);
+ }
+
+ }
+ static function jsonImportFromArray($opts)
+ {
+ foreach($opts as $o=>$v) {
+ if (!preg_match('/^json-/', $o) || empty($v)) {
+ continue;
+ }
+ $type = str_replace('_', '-', substr($o,6));
+ $data= json_decode(file_get_contents($file),true);
+ DB_DataObject::factory($type)->importFromArray($data);
+
+ }
+
+
+
+ }
+
function runUpdateModulesData()
{
+
+
+ HTML_FlexyFramework::get()->generateDataobjectsCache(true);
+ echo "Running jsonImportFromArray\n";
+ Pman_Core_UpdateDatabase::jsonImportFromArray($this->opts);
+
+
+ echo "Running updateData on modules\n";
// runs core...
+ echo "Core\n";
$this->updateData();
$modules = array_reverse($this->modulesList());
if($module == 'Core' || !file_exists($file)){
continue;
}
+
require_once $file;
$class = "Pman_{$module}_UpdateDatabase";
$x = new $class;
if(!method_exists($x, 'updateData')){
continue;
};
+ echo "$module\n";
$x->updateData();
}