#!/usr/bin/perl

$ENV{DB_USER} = "dave";
use lib "/var/www/gpsdb";
use gps_db;

my $dbh = db_connect();#"gps_testdb");
#my $dbh = db_connect("gps_testdb");

my %coordinate;
my @coordinates;
my $lat;
my $lon;
my $do_set;
while (my $arg = shift @ARGV) {
	if ($arg eq "-s") {
		$do_set = 1;
		next;
	}
	my ($variable, $val) = split('=', $arg, 2);
	
	if ($variable eq "lon") {
		$lon = $val;
		%coordinate = (lat => 0, lon => 0);
	}
	if ($variable eq "lat") {
		$lat = $val;
		%coordinate = (lat => 0, lon => 0);
	}
	if ($lat && $lon) {
		if (!int($lat) || !int($lon)) {
			die "bad coordinate values";
		} else {
			print "coordinate: lat: $lat lon: $lon\n";
		}
		%coordinate = (lat => $lat, lon => $lon);
		$existing_id = get_coordinate_id($dbh, \%coordinate);
		if ($do_set && $existing_id) {
			$lat = 0;
			$lon = 0;
			next;
		}
		if ($existing_id) {
			print STDERR "skipping dup coordinate: lat: $lat lon: $lon\n";
			%coordinate = (lat => 0, lon => 0);
		} else {
			my $res = create_coordinate($dbh, \%coordinate);
			die "create failed" if (!$res) ;
		}
		$lat = 0;
		$lon = 0;
		next;
	}

	if ($coordinate{lat} && $coordinate{lon}) {
		dprint "setting attribute: $arg\n";
		set_coordinate_attribute($dbh, \%coordinate,
					 $variable, $val);
	}
	push @coordinates, \%coordinate;
}

print "\n";
$dbh->commit;
$dbh->disconnect();

