#!/usr/bin/env perl # -*- perl -*- # # $Id: bbbikeclient,v 1.10 2005/10/27 00:58:55 eserte Exp $ # Author: Slaven Rezic # # Copyright (C) 1999,2001,2005 Slaven Rezic. All rights reserved. # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. # # Mail: eserte@users.sourceforge.net # WWW: http://bbbike.sourceforge.net # use FindBin; use lib "$FindBin::RealBin"; use BBBikeServer; use Getopt::Long; use strict; use vars qw($VERBOSE); $^W = 1; $VERBOSE = 1 if !defined $VERBOSE; if (BBBikeServer::running()) { # adjust filenames (from relative to absolute) my($center, $centerc, $from, $to); if (!GetOptions("center=s" => \$center, "centerc=s" => \$centerc, "from=s" => \$from, "to=s" => \$to, "v|verbose!" => \$VERBOSE, )) { warn "Some arguments will be ignored...\n"; } my @argv; if (defined $center) { push @argv, "-center", $center; } if (defined $centerc) { push @argv, "-centerc", $centerc; } if (defined $from) { push @argv, "-from", $from; } if (defined $to) { push @argv, "-to", $to; } for(my $i=0; $i<=$#ARGV; $i++) { $_ = $ARGV[$i]; if (/^-/) { eval q{ require File::Spec; }; if (!$@) { if (!File::Spec->file_name_is_absolute($_)) { require Cwd; $_ = File::Spec->catfile(Cwd::getcwd(), $_); } } } push @argv, "-routefile", $_; } warn "Send to bbbike server: @argv\n" if $VERBOSE; exit 0 if !@argv; $BBBikeServer::VERBOSE = $VERBOSE; exit 0 if (BBBikeServer::send_to_server(-argv => \@argv)); exit 1; } my @saveargs = @ARGV; my $startserver = 1; # XXX be quiet... GetOptions("startserver!" => \$startserver); if ($startserver) { # remove -startserver option, if necessary XXX warn "No server process found, restarting bbbike...\n" if $VERBOSE; @ARGV = @saveargs; unshift @ARGV, "-server"; system($^X, "$FindBin::RealBin/bbbike", @ARGV); } __END__