From d652656be6e9502eed0b5a807a42e666c2207031 Mon Sep 17 00:00:00 2001 From: Daniel Asher Resnick Date: Wed, 25 Nov 2020 20:27:04 -0600 Subject: [PATCH] kml.pl: don't add duplicate places --- kml.pl | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/kml.pl b/kml.pl index a64f0cd..6454831 100755 --- a/kml.pl +++ b/kml.pl @@ -17,6 +17,7 @@ unless(defined($mode)) { USAGE(); } + if ($mode eq 'add') { my ($name, $coordinates) = @ARGV; @@ -25,12 +26,19 @@ if ($mode eq 'add') say "Not enough args for add operation"; USAGE(1); } + my $name_id = to_id($name); + my ($placemark) = $xpc->findnodes("//k:Placemark[\@id=\"$name_id\"]"); + if(defined($placemark)) + { + say "$name already exists in $filename"; + exit(1); + } append_placemark($name, $coordinates, uri_escape($name)); print $dom->toString(1); } + elsif ($mode eq 'remove') { - # say "Remove mode"; my ($name) = @ARGV; unless (defined($name)) { @@ -49,12 +57,13 @@ elsif ($mode eq 'remove') say "$name was not found in $filename"; exit(1); } - # say $placemark->toString(1); } + elsif ($mode eq 'set') { say "Set mode"; } + else { say "Invalid operation";