#!/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(){ 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;