projects
/
platal.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
admin/emails/broken: remove trailing spaces after email addresses
[platal.git]
/
bin
/
csv2sql.php
diff --git
a/bin/csv2sql.php
b/bin/csv2sql.php
index
ef7ad30
..
34a62b5
100755
(executable)
--- a/
bin/csv2sql.php
+++ b/
bin/csv2sql.php
@@
-1,7
+1,7
@@
#!/usr/bin/php5
<?php
/***************************************************************************
#!/usr/bin/php5
<?php
/***************************************************************************
- * Copyright (C) 2003-20
07
Polytechnique.org *
+ * Copyright (C) 2003-20
14
Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
@@
-20,15
+20,22
@@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
+require_once dirname(__FILE__) . '/../core/classes/csvimporter.php';
+
// {{{ function showHelp()
// {{{ function showHelp()
-function showHelp($error = null) {
+function showHelp($error = null)
+{
if ($error) {
echo 'Ligne de commande non-valide : ' . $error, "\n\n";
}
if ($error) {
echo 'Ligne de commande non-valide : ' . $error, "\n\n";
}
- echo 'csv2sql.php -t table [-i source] [-r phpfile]', "\n\n";
+ echo 'csv2sql.php -t table [-
du] [-k keys] [-
i source] [-r phpfile]', "\n\n";
echo 'options:', "\n";
echo ' -t table: table in which insertion is to be done', "\n";
echo 'options:', "\n";
echo ' -t table: table in which insertion is to be done', "\n";
+ echo ' -d: switch to debug mode', "\n";
+ echo ' -u: switch to update mode', "\n";
+ echo ' -o: switch to update-only mode', "\n";
+ echo ' -k keys: comma-separated list of keys', "\n";
echo ' -i source: CSV source file (stdin if not defined or if source is \'-\'', "\n";
echo ' -r phpfile: PHP file which define relations', "\n";
}
echo ' -i source: CSV source file (stdin if not defined or if source is \'-\'', "\n";
echo ' -r phpfile: PHP file which define relations', "\n";
}
@@
-38,14
+45,28
@@
function showHelp($error = null) {
function processArgs()
{
function processArgs()
{
- global $sourceName, $table, $includedFile;
- $opts = getopt('
i:t:r:d
:');
+ global $sourceName, $table, $includedFile
, $debug, $action, $keys
;
+ $opts = getopt('
oui:t:r:dk
:');
if ($opts['i'] == '-' || empty($opts['i'])) {
$sourceName = 'php://stdin';
} else {
$sourceName = $opts['i'];
}
if ($opts['i'] == '-' || empty($opts['i'])) {
$sourceName = 'php://stdin';
} else {
$sourceName = $opts['i'];
}
+ if ($opts['k'] && !empty($opts['k'])) {
+ $keys = $opts['k'];
+ }
+
+ if (isset($opts['u'])) {
+ $action = CSV_UPDATE ;
+ } elseif (isset($opts['o'])) {
+ $action = CSV_UPDATEONLY;
+ }
+
+ if (isset($opts['d'])) {
+ $debug = true;
+ }
+
if ($opts['r'] && !empty($opts['r'])) {
$includedFile = $opts['r'];
}
if ($opts['r'] && !empty($opts['r'])) {
$includedFile = $opts['r'];
}
@@
-59,22
+80,24
@@
function processArgs()
// }}}
// }}}
+global $debug, $action, $keys;
+$debug = false;
+$action = CSV_INSERT;
+$keys = 'id';
+
processArgs();
processArgs();
-require_once(dirname(__FILE__) . '/../classes/csvimporter.php');
-require_once(dirname(__FILE__) . '/../classes/xdb.php');
+require_once dirname(__FILE__) . '/../core/classes/xdb.php';
-$source = file_get_contents($sourceName);
+$source
= file_get_contents($sourceName);
$insert_relation = null;
$update_relation = null;
$insert_relation = null;
$update_relation = null;
-$debug = false;
-$action = CSV_INSERT;
if (isset($includedFile)) {
if (isset($includedFile)) {
- require_once
($includedFile)
;
+ require_once
$includedFile
;
}
}
-$translater = new CSVImporter($table, $key, !$debug);
+$translater = new CSVImporter($table, $key
s
, !$debug);
$translater->setCSV($source);
$translater->run($action, $insert_relation, $update_relation);
$translater->setCSV($source);
$translater->run($action, $insert_relation, $update_relation);
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker
f
enc=utf-8:
?>
?>