]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - virtual/eldiron.nix
Add davical
[perso/Immae/Config/Nix.git] / virtual / eldiron.nix
index b9dba3f79b3d91ba3ccf3f4dc28257c9e7209858..506e29d666de4cc4183ceacbd8fed22512cffb9b 100644 (file)
         mantisbt = mypkgs.mantisbt.phpFpm.pool;
         ttrss = mypkgs.ttrss.phpFpm.pool;
         roundcubemail = mypkgs.roundcubemail.phpFpm.pool;
+        davical = mypkgs.davical.phpFpm.pool;
       };
     };
 
         install -d -m 0750 -o wwwrun -g wwwrun /var/lib/php/sessions/adminer
         install -d -m 0750 -o wwwrun -g wwwrun /var/lib/php/sessions/mantisbt
         install -d -m 0750 -o wwwrun -g wwwrun /var/lib/php/sessions/ttrss
+        install -d -m 0750 -o wwwrun -g wwwrun /var/lib/php/sessions/davical
         '';
       redis = ''
         mkdir -p /run/redis
             mypkgs.ympd.apache.vhostConf
             mypkgs.ttrss.apache.vhostConf
             mypkgs.roundcubemail.apache.vhostConf
+            mypkgs.infcloud.apache.vhostConf
+            mypkgs.davical.apache.vhostConf
           ];
         })
         (withConf "eldiron" // {
       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?