X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fwebapps%2Fwebstats%2Fdefault.nix;h=7a2774112f545a8f7b4f863c24b7f12dbee849f6;hb=b1b8a5623d22a7ee4301afe4e7b9d368ef7ded8f;hp=f4916bd011fc03ceb61e4b037a586937cb00e5cb;hpb=9eae2b47b7b315b05a0e010f3003bd875685e260;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/webapps/webstats/default.nix b/modules/webapps/webstats/default.nix index f4916bd..7a27741 100644 --- a/modules/webapps/webstats/default.nix +++ b/modules/webapps/webstats/default.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, config, mylibs, ... }: +{ lib, pkgs, config, ... }: let name = "goaccess"; cfg = config.services.webstats; @@ -23,7 +23,7 @@ in { ''; }; name = lib.mkOption { - type = lib.types.string; + type = lib.types.str; description = '' Domain name. Corresponds to the Apache file name and the folder name in which the state will be saved. @@ -37,6 +37,9 @@ in { }; config = lib.mkIf (builtins.length cfg.sites > 0) { + services.duplyBackup.profiles.goaccess = { + rootDir = cfg.dataDir; + }; users.users.root.packages = [ pkgs.goaccess ]; @@ -54,20 +57,21 @@ in { #!${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 + mkdir -p ${cfg.dataDir}/${domain} + for i in /var/log/httpd/access-${domain}*.gz; do + zcat "$i" >> $TMPFILE done + cat /var/log/httpd/access-${domain}.log > $TMPFILE ${pkgs.goaccess}/bin/goaccess $TMPFILE --no-progress -o ${cfg.dataDir}/${domain}/index.html -p ${config} ''; in "${d}/bin/stats-${domain}"; allStats = sites: pkgs.writeScript "stats" '' #!${pkgs.stdenv.shell} + mkdir -p ${cfg.dataDir} ${builtins.concatStringsSep "\n" (map (v: stats v.name v.conf) sites)} ''; in @@ -75,10 +79,5 @@ in { "5 0 * * * root ${allStats cfg.sites}" ]; }; - - system.activationScripts.goaccess = '' - mkdir -p /var/lib/goaccess - '' + - builtins.concatStringsSep "\n" (map (v: "mkdir -p ${cfg.dataDir}/${v.name}") cfg.sites); }; }