tweaks to the create table failover logic
[migration-tools.git] / csv_ripper
index 99e047c..99c4ff0 100755 (executable)
@@ -1,7 +1,23 @@
 #!/usr/bin/perl
 
+# Copyright 2009-2012, Equinox Software, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
 # TODO
-# 
+#
 # * add getopt support
 # * use tag generator to expand list of wanted fields?
 # * insertion of constant-value fields
@@ -14,15 +30,16 @@ use warnings;
 
 use Text::CSV;
 
-my $csv = Text::CSV->new({escape_char => "+", allow_loose_quotes => 1});
+my $csv = Text::CSV->new( {binary => 1});
 
 open CSV, '<', shift or die "Can't open file $!\n";
 
 while (<CSV>) {
     $csv->parse($_);
+    die "Bad data on line $.\n$_\n" if ($csv->error_diag);
     my @chunks = $csv->fields;
     my @out = ();
-    for (@ARGV)
-      { push @out, $chunks[$_]}
+    for my $chunk (@ARGV)
+      { push @out, $chunks[$chunk] }
     print join("\t", @out), "\n";
 }