imrpove dry-run and cli

This commit is contained in:
Cornelius Weiß 2007-06-21 18:04:23 +00:00
parent c1a2bd342f
commit f75ab71d98
4 changed files with 23 additions and 30 deletions

View File

@ -13,11 +13,13 @@
$path_to_egroupware = realpath(dirname(__FILE__).'/..');
$usage = "usage:
--definition <name of definition>
--file <name of file>
--user <eGW username>
--password <password for user>
--domain <domain name> \n";
--definition <name of definition> Name of definition
--file <name of file> File to import / for export
--user <eGW username> eGroupWare username for action
--password <password for user> users password
--domain <domain name> eGroupWare domain
--dry-run no real action, just console output
\n";
if (php_sapi_name() != 'cli') {
die('This script only runs form command line');
@ -49,7 +51,8 @@
'file=',
'user=',
'password=',
'domain='
'domain=',
'dry-run',
);
// Convert the arguments to options - check for the first argument
@ -66,6 +69,7 @@
}
$domain = 'default';
$dryrun = false;
foreach ($options[0] as $option) {
switch ($option[0]) {
case '--file' :
@ -83,6 +87,9 @@
case '--password' :
$password = $option[1];
break;
case '--dry-run' :
$dryrun = true;
break;
default :
fwrite (STDERR,$usage."\n");
exit(INVALID_OPTION);
@ -131,19 +138,20 @@
}
require_once('inc/class.definition.inc.php');
try {
$definition = new definition($definition);
}
catch (Exception $e) {
fwrite(STDERR,"importexport_cli: ". $e->getMessage(). "\n");
if( $definition->get_identifier() < 1 ) {
fwrite(STDERR,"importexport_cli: Definition not found! \n");
exit(INVALID_OPTION);
}
$GLOBALS['egw_info']['flags']['currentapp'] = $definition->application;
$definition->plugin_options['dry_run'] = $dryrun;
$type = $definition->type;
require_once("$path_to_egroupware/$definition->application/importexport/class.$definition->plugin.inc.php");
$po = new $definition->plugin;
$type = $definition->type;
$resource = fopen( $file, 'r' );
$po->$type( $resource, $definition );

View File

@ -54,22 +54,6 @@ class bodefinitions {
return $this->definitions;
}
/**
* reads a definition from database
*
* @deprecated see class.definition.inc.php
* @param mixed &$definition
* @return bool success or not
*/
public function read(&$definition) {
if(is_int($definition)) $definition = array('definition_id' => $definition);
elseif(is_string($definition)) $definition = array('name' => $definition);
if(!$definition = $this->so_sql->read($definition)) return false;
$definition += (array)unserialize($definition['plugin_options']);
unset($definition['plugin_options']);
return true;
}
/**
* deletes a defintion
*

View File

@ -217,7 +217,7 @@ class definition implements iface_egw_record {
/**
* gets identifier of this record
*
* @return string identifier of this record
* @return int identifier of this record
*/
public function get_identifier() {
return $this->definition['definition_id'];

View File

@ -209,6 +209,7 @@ class import_csv implements iface_import_record { //, Iterator {
$record = $this->record;
$this->record = array();
foreach ($this->mapping as $cvs_idx => $new_idx) {
if( $new_idx == '' ) continue;
$this->record[$new_idx] = $record[$cvs_idx];
}
return true;