Commit 77e2ce9c authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

csv2json: Check for duplicate entries

parent c890c1d0
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -48,5 +48,34 @@ for my $line (@csv_lines) {

@stations = sort { $a->{name} cmp $b->{name} } @stations;

my $have_duplicates = 0;
my @names           = map { $_->{name} } @stations;
my @ds100           = map { $_->{ds100} } @stations;
my @uic_ids         = map { $_->{uic} } @stations;

for my $i ( 1 .. $#names ) {
	if ( $names[ $i - 1 ] eq $names[$i] ) {
		say "Duplicate station name: $names[$i]";
		$have_duplicates = 1;
	}
}
for my $i ( 1 .. $#ds100 ) {
	if ( $ds100[ $i - 1 ] eq $ds100[$i] ) {
		say "Duplicate DS100 code: $ds100[$i]";
		$have_duplicates = 1;
	}
}
for my $i ( 1 .. $#uic_ids ) {
	if ( $uic_ids[ $i - 1 ] == $uic_ids[$i] ) {
		say "Duplicate UIC ID: $uic_ids[$i]";
		$have_duplicates = 1;
	}
}

if ($have_duplicates) {
	say "Data has NOT been converted to stations.json";
	say "Please remove duplicates and run $0 again";
}

my $json_out = JSON->new->utf8->canonical->pretty->encode( [@stations] );
write_file( 'stations.json', $json_out );