create yaml dump files
[virtual-ldap] / bin / csv2yaml-upisi2010.pl
1 #!/usr/bin/perl
2
3 use warnings;
4 use strict;
5
6 # 2010-07-13 Dobrica Pavlinusic <dpavlin@rot13.org>
7
8 use Data::Dump qw/dump/;
9 use YAML qw/DumpFile/;
10 use Text::CSV;
11
12 my $debug = 0;
13 my $dir = 'yaml/hrEduPersonUniqueNumber_JMBG';
14
15 mkdir $dir unless -e $dir;
16
17 my $path = shift @ARGV || die "usage: $0 file.csv\n";
18
19 my $csv = Text::CSV->new ( { binary => 1 } )  # should set binary attribute.
20         or die "Cannot use CSV: ".Text::CSV->error_diag ();
21
22 open my $fh, "<:encoding(utf8)", $path or die "$path: $!";
23 while ( my $row = $csv->getline( $fh ) ) {
24
25         my ( $ulica, $grad ) = split(/\s*,\s*/, $row->[8]);
26
27         my $info = {
28                 prezime => $row->[0],
29                 ime => $row->[1],
30                 jmbg => $row->[2],
31                 datum_rodjenja => $row->[3],
32                 email => $row->[4],
33                 adresa_ulica => $ulica,
34                 adresa_grad  => $grad,
35                 tel_fixed => $row->[9],
36                 tel_mobile => $row->[10],
37                 spol => substr($row->[2],9,3) < 500 ? 'M' : 'F',
38         };
39
40         my $uuid = $row->[2];
41         DumpFile( "$dir/$uuid.yaml", $info );
42         warn "$uuid\n";
43 }
44 $csv->eof or $csv->error_diag();
45 close $fh;
46