diff options
Diffstat (limited to 'pistar-activity-report')
| -rwxr-xr-x | pistar-activity-report | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/pistar-activity-report b/pistar-activity-report new file mode 100755 index 0000000..572bf4c --- /dev/null +++ b/pistar-activity-report @@ -0,0 +1,52 @@ +#!/usr/bin/perl + +use strict; +use Getopt::Std; +use POSIX qw(strftime); +use Sys::Hostname; + +our($opt_f, $opt_s, $opt_r); +my $nowiso = strftime "%Y-%m-%d", gmtime(time - 86400); + +getopts('f:r:s:'); +if( !defined($opt_f)){ + $opt_f = sprintf("/var/log/pi-star/MMDVM-%s.log", $nowiso); +} +if( ! -f $opt_f ){ + print STDERR "File $opt_f not found\n"; + exit 1; +} + +if( !defined($opt_s) || !defined($opt_r) ){ + print STDERR "Usage: pistar-activity-report [-f FILE] -s SENDERADDR -r RECEIVEADDR[,RECEIVEADDR]\n"; + exit 1; +} + +my $dstar=0; +my $dmr=0; + +open(IN, "<" . $opt_f) or die($!); +while(<IN>){ + chomp $_; + + if( $_ =~ m/D\-Star,\s+received\s+\w+\send of transmission/ ){ + ( my $s = $_ ) =~ s/^.*\s([0-9]+\.[0-9])\sseconds.*$/$1/; + $dstar += $s; + } elsif( $_ =~ m/DMR.*received network end of voice/) { + ( my $s = $_ ) =~ s/^.*\s([0-9]+\.[0-9])\sseconds.*$/$1/; + $dmr += $s; + } +} +close(IN); + +printf("From: %s\n", $opt_s); +printf("To: %s\n", $opt_r); +printf("Subject: %s - Daily Tx Report for %s (UTC)\n", hostname, $nowiso); +print "\n"; +printf("D-STAR TX Seconds: %i\n", $dstar); +printf("DMR TX Seconds: %i\n", $dmr); +print "\n"; +print "DSTAR,DMR\n"; +printf("%i,%i\n", $dstar, $dmr); + +exit 0; |
