X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUtil.pm;h=93030bfc88e785987c49b7f9e85d334ffc6ba43a;hb=f002e5a1e69f1909a50adfe2a8abcbf89af5d74e;hp=14819ad1b146446d6bbe5ca36088bbfc4728cf6d;hpb=537a4a109f291c206d754ec2067d49f9964cca08;p=spider.git diff --git a/perl/DXUtil.pm b/perl/DXUtil.pm index 14819ad1..93030bfc 100644 --- a/perl/DXUtil.pm +++ b/perl/DXUtil.pm @@ -8,14 +8,16 @@ package DXUtil; + use Date::Parse; use IO::File; use File::Copy; use Data::Dumper; + use strict; -use vars qw(@month %patmap @ISA @EXPORT); +use vars qw(@month %patmap $pi $d2r $r2d @ISA @EXPORT); require Exporter; @ISA = qw(Exporter); @@ -24,7 +26,7 @@ require Exporter; filecopy ptimelist print_all_fields cltounix unpad is_callsign is_long_callsign is_latlong is_qra is_freq is_digits is_pctext is_pcflag insertitem deleteitem - is_prefix dd is_ipaddr + is_prefix dd is_ipaddr $pi $d2r $r2d localdata localdata_mv ); @@ -36,6 +38,11 @@ require Exporter; ']' => ']' ); +$pi = 3.141592653589; +$d2r = ($pi/180); +$r2d = (180/$pi); + + # a full time for logging and other purposes sub atime { @@ -467,3 +474,35 @@ sub deleteitem return $n - @$list; } +# find the correct local_data directory +# basically, if there is a local_data directory with this filename and it is younger than the +# equivalent one in the (system) data directory then return that name rather than the system one +sub localdata +{ + my $ifn = shift; + my $ofn = "$main::data/$ifn"; + my $tfn; + + if (-e "$main::local_data") { + $tfn = "$main::local_data/$ifn"; + if (-e $tfn && -e $ofn) { + $ofn = $tfn if -M $tfn < -M $ofn; + } elsif (-e $tfn) { + $ofn = $tfn; + } + } + + return $ofn; +} + +# move a file or a directory from data -> local_data if isn't there already +sub localdata_mv +{ + my $ifn = shift; + if (-e "$main::data/$ifn" ) { + unless (-e "$main::local_data/$ifn") { + move("$main::data/$ifn", "$main::local_data/$ifn") or die "localdata_mv: cannot move $ifn from '$main::data' -> '$main::local_data' $!\n"; + } + } +} +