summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-12-11 10:21:41 +0200
committerPaul Buetow <paul@buetow.org>2024-12-11 10:21:41 +0200
commit236ba86991ed2865e3336a671829f023b6dc6dbd (patch)
tree8fc3da8ed761a4a1199db15698ca891521e28166
parentb4ff1a2e3e9191f94108db210c0f14bb07c39f38 (diff)
make it compatible to macOS book
-rw-r--r--frontends/Rexfile2
-rw-r--r--frontends/scripts/foostats.pl11
2 files changed, 7 insertions, 6 deletions
diff --git a/frontends/Rexfile b/frontends/Rexfile
index 039ad86..6e02adf 100644
--- a/frontends/Rexfile
+++ b/frontends/Rexfile
@@ -532,7 +532,7 @@ task 'foostats', group => 'frontends',
append_if_no_such_line '/etc/daily.local', 'perl /usr/local/bin/foostats.pl --parse-logs';
- my @deps = qw(p5-Digest-SHA3 p5-PerlIO-gzip p5-JSON p5-String-Util);
+ my @deps = qw(p5-Digest-SHA3 p5-PerlIO-gzip p5-JSON p5-String-Util p5-Compress-Bzip2);
pkg $_, ensure => present for @deps;
# For now, custom syslog config only required for foostats (to keep some logs for longer)
diff --git a/frontends/scripts/foostats.pl b/frontends/scripts/foostats.pl
index d40e514..a4ec41b 100644
--- a/frontends/scripts/foostats.pl
+++ b/frontends/scripts/foostats.pl
@@ -301,7 +301,8 @@ package Foostats::Aggregator {
package Foostats::Outputter {
use JSON;
- use Sys::Hostname;
+ use Sys::Hostname;
+ use PerlIO::gzip;
sub new ($class, %args) {
my $self = bless \%args, $class;
@@ -311,8 +312,8 @@ package Foostats::Outputter {
sub last_processed_date ($self, $proto) {
my $hostname = hostname();
- my @processed = glob $self->{stats_dir} . "/${proto}_????????.$hostname.json";
- my ($date) = @processed ? ($processed[-1] =~ /_(\d{8})\.$hostname\.json/) : 0;
+ my @processed = glob $self->{stats_dir} . "/${proto}_????????.$hostname.json.gz";
+ my ($date) = @processed ? ($processed[-1] =~ /_(\d{8})\.$hostname\.json.gz/) : 0;
return int($date);
}
@@ -321,11 +322,11 @@ package Foostats::Outputter {
sub write_json ($self, $date_key, $stats) {
my $hostname = hostname();
- my $path = $self->{stats_dir} . "/${date_key}.$hostname.json";
+ my $path = $self->{stats_dir} . "/${date_key}.$hostname.json.gz";
my $json = encode_json $stats;
say "Writing $path";
- open my $fd, '>', "$path.tmp" or die "$path.tmp: $!";
+ open my $fd, '>:gzip', "$path.tmp" or die "$path.tmp: $!";
print $fd $json;
close $fd;