]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/websites/tools/tools/wallabag.nix
Add backup module
[perso/Immae/Config/Nix.git] / modules / private / websites / tools / tools / wallabag.nix
index ba755e4d514fbc3636960f0f0e906f138a528e8c..8572d64ca02405b3e86f75e6a005ff1b03400f53 100644 (file)
@@ -1,5 +1,8 @@
 { env, wallabag, mylibs }:
 rec {
+  backups = {
+    rootDir = varDir;
+  };
   varDir = "/var/lib/wallabag";
   keys = [{
     dest = "webapps/tools-wallabag";
@@ -110,18 +113,20 @@ rec {
       '';
   };
   phpFpm = rec {
-    preStart = mylibs.phpFpmPreStart {
-      app = webappDir;
-      inherit varDir;
-      keyFiles = [
-        "/var/secrets/webapps/tools-wallabag"
-      ];
-      actions = [
-        "/run/wrappers/bin/sudo -u wwwrun ./bin/console --env=prod cache:clear"
-        "rm -rf /var/lib/wallabag/var/cache/pro_"
-        "/run/wrappers/bin/sudo -u wwwrun ./bin/console --env=prod doctrine:migrations:migrate --no-interaction"
-      ];
-    };
+    preStart = ''
+      if [ ! -f "${varDir}/currentWebappDir" -o \
+          ! -f "${varDir}/currentKey" -o \
+          "${webappDir}" != "$(cat ${varDir}/currentWebappDir 2>/dev/null)" ] \
+          || ! sha512sum -c --status ${varDir}/currentKey; then
+        pushd ${webappDir} > /dev/null
+        /run/wrappers/bin/sudo -u wwwrun ./bin/console --env=prod cache:clear
+        rm -rf /var/lib/wallabag/var/cache/pro_
+        /run/wrappers/bin/sudo -u wwwrun ./bin/console --env=prod doctrine:migrations:migrate --no-interaction
+        popd > /dev/null
+        echo -n "${webappDir}" > ${varDir}/currentWebappDir
+        sha512sum /var/secrets/webapps/tools-wallabag > ${varDir}/currentKey
+      fi
+    '';
     serviceDeps = [ "postgresql.service" "openldap.service" ];
     basedir = builtins.concatStringsSep ":" [ webappDir "/var/secrets/webapps/tools-wallabag" varDir ];
     socket = "/var/run/phpfpm/wallabag.sock";