/usr/bin/geocache2way is in gpsdrive-scripts 2.10~pre4-6.dfsg-5.2ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | #!/usr/bin/perl
#
# geocache2way - Kevin Stephens
# 04/30/02
#
# Script to read .loc files from geocaching.com, parse it and add it onto the end of way.txt.
#
use strict;
use XML::Simple;
use Data::Dumper;
use Getopt::Long;
# Open the XML file
my $FILE 	= 'geocaching.loc';
my $OUTFILE = "$ENV{'HOME'}/.gpsdrive/way.txt";
my ($DEBUG,$verbose);
GetOptions ('debug' => \$DEBUG,'file=s' => \$FILE,'output=s' => \$OUTFILE,'verbose' => \$verbose, 'help' => \&usage);
# Setup the XML object
my $xs = new XML::Simple(keyattr => "id");
my $location = $xs->XMLin($FILE);
if ($DEBUG) {
   print Dumper($location);
} else {
   # Check if it is single listing or multiple
   if ($location->{'waypoint'}{'name'}) {
      print_it($location->{'waypoint'});
   } else {
      foreach my $point (@{$location->{'waypoint'}}) {
         print_it($point);
      }
   }
}
sub print_it {
   my ($CACHE_ref) = @_;
   my $id      = $CACHE_ref->{'name'}{'id'};
   my $lat     = $CACHE_ref->{'coord'}{'lat'};
   my $lon     = $CACHE_ref->{'coord'}{'lon'};
   my $name    = $CACHE_ref->{'name'}{'content'};
# These are here for future expansion.
# Waiting for changes to gpsdrive way.txt.
#    my $type    = $CACHE_ref->{'type'};
#    my $URL     = $CACHE_ref->{'link'}{'content'};
   # Clean out extra space
    $name =~ s/^\s*//;
    $name =~ s/\s*$//;
#    $URL  =~ s/\s//g;
   
   if ($verbose) {
      print "$id $lat $lon\n";
   } else {
      open(OUTFILE,">>$OUTFILE") || die "Can't open $OUTFILE\n";
      print OUTFILE "$id $lat $lon\n";
      close(OUTFILE);
      
      # Now change the filename for the dsc file
      my $DSCFILE = $OUTFILE;
      $DSCFILE =~ s/\..*$//;
      open(OUTFILE,">>$DSCFILE.dsc") || die "Can't open $DSCFILE\n";
      print OUTFILE "\$$id\n$name\n\n";
      close(OUTFILE);
   }      
}
sub usage {
   print <<EOP;
Usage:   geoparse.pl [-f | --file <filename>] [-o | --output <filename>] [-v | --verbose] 
                     [-d | --debug] [-h | --help]
   
      -f | --file    = File to parse, takes a filename
      -o | --output  = File to write to. Default: \$HOME/.gpsdrive/way.txt 
      -v | --verbose = Print output to STDOUT instead of a file
      -d | --debug   = Debug
      -h | --help    = This usage screen
EOP
}
 |