]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Rewrite stats generation script
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Tue, 8 Jan 2019 15:31:05 +0000 (16:31 +0100)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Tue, 8 Jan 2019 15:31:05 +0000 (16:31 +0100)
virtual/eldiron.nix

index b9dba3f79b3d91ba3ccf3f4dc28257c9e7209858..cd92b3ddc7e620fd41e223959af33a963522ac0b 100644 (file)
       enable = true;
       systemCronJobs = let
         stats = domain: conf: let
-          d = pkgs.writeScriptBin "stats-${domain}" "${pkgs.gnused}/bin/sed -n '/\\['$(LC_ALL=C ${pkgs.coreutils}/bin/date -d yesterday +'%d\\/%b\\/%Y')'/ p' /var/log/httpd/access_log-${domain} | ${pkgs.goaccess}/bin/goaccess -o /var/lib/goaccess/${domain}/index.html -p ${conf}";
+          d = pkgs.writeScriptBin "stats-${domain}" ''
+            #!${pkgs.stdenv.shell}
+            set -e
+            shopt -s nullglob
+            date_regex=$(LC_ALL=C date -d yesterday +'%d\/%b\/%Y')
+            TMPFILE=$(mktemp)
+            trap "rm -f $TMPFILE" EXIT
+
+            cat /var/log/httpd/access_log-${domain} | sed -n "/\\[$date_regex/ p" > $TMPFILE
+            for i in /var/log/httpd/access_log-${domain}*.gz; do
+              zcat "$i" | sed -n "/\\[$date_regex/ p" >> $TMPFILE
+            done
+            goaccess $TMPFILE --no-progress -o /var/lib/goaccess/${domain}/index.html -p ${conf}
+            '';
           in "${d}/bin/stats-${domain}";
       # FIXME: running several goaccess simultaneously seems to be
       # bugged?