summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-12-11 10:16:03 +0200
committerPaul Buetow <paul@buetow.org>2024-12-11 10:16:03 +0200
commita823fb02c13cf6fb1b6ea8af4a0eb5212e1815c6 (patch)
treefbd243c53cf189f815ef5ee5004df81fd82b60b9
parent84515129c3ed934fda7b5c45f73b055a823ce2d9 (diff)
gzip compress results
-rw-r--r--foostats.pl11
1 files changed, 6 insertions, 5 deletions
diff --git a/foostats.pl b/foostats.pl
index d40e514..a4ec41b 100644
--- a/foostats.pl
+++ b/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;