fix gender
[virtual-ldap] / bin / csv2yaml.pl
index 9a81901..7faa9af 100755 (executable)
@@ -37,7 +37,33 @@ foreach my $line ( split(/\r?\n/, $csv) ) {
 
        warn "# fields = ",dump( @fields ) if $debug;
 
-       $hash->{ $columns[$_] } = $fields[$_] foreach ( 0 .. $#fields );
+       foreach ( 0 .. $#fields ) {
+               my $n = $columns[$_];
+               my $v = $fields[$_];
+
+               $v =~ s{\s*#\s*$}{};
+               $v =~ s{^\s+}{};
+               $v =~ s{\s+$}{};
+
+               # fix tel fields
+               $v =~ s{\s+}{#}g if $n =~ m{tel};
+               $v =~ s[\x{17d}][F] if $n =~ m{spol};
+
+               if ( $v =~ m{#} ) {
+                       my @v = split(/\s*#\s*/, $v);
+                       foreach my $pos ( 0 .. $#v ) {
+                               if ( $n =~ m{tel} ) {
+                                       if ( $v[$pos] =~ m{^09} ) {
+                                               $hash->{ $n . '_mobile' } ||= $v[$pos];
+                                       } else {
+                                               $hash->{ $n . '_fixed' } ||= $v[$pos];
+                                       }
+                               }
+                               $hash->{ $n . '_' . $pos } = $v[$pos];
+                       }
+               }
+               $hash->{ $n } = $v;
+       }
 
        warn dump( $hash ) if $debug;