mirror of
https://github.com/limosek/zaf-plugins.git
synced 2024-12-21 16:37:53 +01:00
CSV fields are counted from 1
This commit is contained in:
parent
c32c2bcca4
commit
a41faae3f0
3
.gitignore
vendored
3
.gitignore
vendored
@ -1 +1,2 @@
|
||||
*~
|
||||
*~
|
||||
/nbproject/private/
|
72
csv/discovery
Normal file
72
csv/discovery
Normal file
@ -0,0 +1,72 @@
|
||||
#!/usr/bin/php
|
||||
<?php
|
||||
|
||||
require_once(__DIR__."/functions.inc.php");
|
||||
|
||||
if ($argc<6) {
|
||||
fprintf(STDERR,"Missing arguments!\n");
|
||||
fprintf(STDERR,"send file.csv delim mode hostfield [item1=field1] [item2=field2] ...\n");
|
||||
fprintf(STDERR,"mode is stdout or send,\n");
|
||||
fprintf(STDERR,"hostfield is host for item to send,\n");
|
||||
fprintf(STDERR,"itemx is key for item to send,\n");
|
||||
fprintf(STDERR,"fieldx is data to send send,\n");
|
||||
fprintf(STDERR,"In hostfield, itemx and fieldx are replaced this macros:\n");
|
||||
fprintf(STDERR,"{COLUMN:x} is replaced by value of column x\n");
|
||||
fprintf(STDERR,"{column:x} is replaced by lowercased value of column x\n");
|
||||
fprintf(STDERR,"x can be column index (x starts with zero) or header name.\n");
|
||||
fprintf(STDERR,"CSV must include header line.\n\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$csv=$argv[1];
|
||||
if ($csv=="-") {
|
||||
$csv="php://stdin";
|
||||
}
|
||||
$delim=$argv[2];
|
||||
$mode=$argv[3];
|
||||
$host=$argv[4];
|
||||
$items=Array();
|
||||
for ($i=5;$i<$argc;$i++) {
|
||||
List($key,$field)=preg_split("/=/",$argv[$i]);
|
||||
$items[]=Array(
|
||||
"key" => $key,
|
||||
"field" => $field
|
||||
);
|
||||
}
|
||||
|
||||
$c=fopen($csv,"r");
|
||||
|
||||
$header=fgetcsv($c,false,$delim);
|
||||
|
||||
$data="";
|
||||
while ($row=fgetcsv($c,false,$delim)) {
|
||||
if (count($row)==1 && trim($row[0])=="") continue;
|
||||
$p=get_replacements($header,$row);
|
||||
$hostr=preg_replace($p["patterns"],$p["replacements"],$host);
|
||||
foreach ($items as $item) {
|
||||
$data.=sprintf("%s %s %s\n",
|
||||
$hostr,
|
||||
preg_replace($p["patterns"],$p["replacements"],$item["key"]),
|
||||
addcslashes(preg_replace($p["patterns"],$p["replacements"],$item["field"]),"\0..\40\"")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
fclose($c);
|
||||
|
||||
if ($mode=="send") {
|
||||
$h = popen(getenv("ZAF_BIN")." send", "w");
|
||||
fputs($h,$data);
|
||||
fclose($h);
|
||||
exit;
|
||||
}
|
||||
if ($mode=="stdout") {
|
||||
echo $data;
|
||||
exit;
|
||||
}
|
||||
|
||||
fprintf(STDERR,"Bad mode $mode\n!");
|
||||
exit(1);
|
||||
|
||||
|
||||
|
@ -1,28 +1,28 @@
|
||||
#!/usr/bin/php
|
||||
<?php
|
||||
require_once(__DIR__ . "/functions.inc.php");
|
||||
|
||||
require_once(__DIR__."/functions.inc.php");
|
||||
$csv = getenv("csv");
|
||||
$range = parse_colnum(getenv("columns"));
|
||||
$rangef = array_flip($range);
|
||||
$delim = getenv("delimiter");
|
||||
|
||||
$csv=getenv("csv");
|
||||
$range=parse_colnum(getenv("columns"));
|
||||
$rangef=array_flip($range);
|
||||
$delim=getenv("delimiter");
|
||||
|
||||
$c=fopen($csv,"r");
|
||||
$header=fgetcsv($c,false,$delim);
|
||||
$c = fopen($csv, "r");
|
||||
$header = fgetcsv($c, false, $delim);
|
||||
fclose($c);
|
||||
|
||||
json_init();
|
||||
|
||||
$last1=end($header);
|
||||
$last2=end($range);
|
||||
$last1 = end($header);
|
||||
$last2 = end($range);
|
||||
|
||||
foreach ($header as $num=>$column) {
|
||||
if (!array_key_exists($num,$range)) continue;
|
||||
json_row();
|
||||
json_column("COLUMN",$num);
|
||||
json_column("NAME",addslashes($column),true);
|
||||
json_row_end($last1==$column||$last2==($num+1));
|
||||
foreach ($header as $num => $column) {
|
||||
if (!array_key_exists($num, $range))
|
||||
continue;
|
||||
json_row();
|
||||
json_column("COLUMN", $num+1);
|
||||
json_column("NAME", addslashes($column), true);
|
||||
json_row_end($last1 == $column || $last2 == ($num + 1));
|
||||
}
|
||||
|
||||
json_end();
|
||||
|
@ -1,45 +1,50 @@
|
||||
#!/usr/bin/php
|
||||
<?php
|
||||
require_once(__DIR__ . "/functions.inc.php");
|
||||
|
||||
require_once(__DIR__."/functions.inc.php");
|
||||
$csv = getenv("csv");
|
||||
$range = parse_colnum(getenv("columns"));
|
||||
$rows = parse_colnum(getenv("rows"));
|
||||
$rowsf = array_flip($rows);
|
||||
$rangef = array_flip($range);
|
||||
$head = getenv("header");
|
||||
$delim = getenv("delimiter");
|
||||
|
||||
$csv=getenv("csv");
|
||||
$range=parse_colnum(getenv("columns"));
|
||||
$rows=parse_colnum(getenv("rows"));
|
||||
$rowsf=array_flip($rows);
|
||||
$rangef=array_flip($range);
|
||||
$head=getenv("header");
|
||||
$delim=getenv("delimiter");
|
||||
|
||||
$c=fopen($csv,"r");
|
||||
$c = fopen($csv, "r");
|
||||
|
||||
$header = Array();
|
||||
$i = 1;
|
||||
if ($head) {
|
||||
$header=fgetcsv($c,false,$delim);
|
||||
$h = fgetcsv($c, false, $delim);
|
||||
foreach ($h as $val) {
|
||||
$header[$i] = $val;
|
||||
$i++;
|
||||
}
|
||||
} else {
|
||||
$header=Array();
|
||||
$i=0;
|
||||
foreach ($range as $r) {
|
||||
$header[$i]=sprintf("FIELD%d",$i);
|
||||
$i++;
|
||||
}
|
||||
foreach ($range as $r) {
|
||||
$header[$i] = sprintf("FIELD%d", $i + 1);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
json_init();
|
||||
$line=0;
|
||||
$last=end($range);
|
||||
$lastrow=max($rows);
|
||||
$line = 0;
|
||||
$last = end($range);
|
||||
$lastrow = max($rows);
|
||||
$numrows = intval(exec("wc -l '$csv'"));
|
||||
|
||||
while ($row=fgetcsv($c,false,$delim)) {
|
||||
$line++;
|
||||
if (!array_key_exists($line,$rowsf)) continue;
|
||||
json_row();
|
||||
json_column("ROW","$line");
|
||||
foreach ($range as $num) {
|
||||
$col=$num-1;
|
||||
json_column("COLUMN$col",$header[$col]);
|
||||
json_column("VALUE$col",addslashes($row[$col]),$last==$num);
|
||||
}
|
||||
json_row_end(feof($c)||$line==$lastrow);
|
||||
while ($row = fgetcsv($c, false, $delim)) {
|
||||
$line++;
|
||||
if (!array_key_exists($line, $rowsf))
|
||||
continue;
|
||||
json_row();
|
||||
json_column("ROW", "$line");
|
||||
foreach ($range as $col) {
|
||||
json_column("COLUMN$col", $header[$col]);
|
||||
json_column("VALUE$col", addslashes($row[$col - 1]), $last == $col);
|
||||
}
|
||||
echo feof($c);
|
||||
json_row_end(feof($c) || $line == $lastrow || $line == $numrows-1);
|
||||
}
|
||||
json_end();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user