forked from extern/egroupware
imrpove dry-run and cli
This commit is contained in:
parent
c1a2bd342f
commit
f75ab71d98
@ -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);
|
||||
@ -129,21 +136,22 @@
|
||||
fwrite(STDERR,"importexport_cli: ". $file. ' is not readable'."\n");
|
||||
exit(INVALID_OPTION);
|
||||
}
|
||||
|
||||
|
||||
require_once('inc/class.definition.inc.php');
|
||||
try {
|
||||
$definition = new definition($definition);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
fwrite(STDERR,"importexport_cli: ". $e->getMessage(). "\n");
|
||||
$definition = new definition($definition);
|
||||
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 );
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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'];
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user