summary refs log tree commit diff
path: root/nixos/modules/services/backup/tarsnap.nix
diff options
context:
space:
mode:
authorMichishige Kaito <me@mkaito.com>2018-03-27 16:35:54 +0100
committerMichishige Kaito <me@mkaito.com>2018-03-27 16:35:54 +0100
commitc515f7036ecd42456c01411bfd79bfc99c6cfbc4 (patch)
treebf087753c3517b1f7f6d9564be1e6dd9d0605e5b /nixos/modules/services/backup/tarsnap.nix
parentbde525aaaff5cd99e79a21e30b9fdfdf2cd616d2 (diff)
downloadnixlib-c515f7036ecd42456c01411bfd79bfc99c6cfbc4.tar
nixlib-c515f7036ecd42456c01411bfd79bfc99c6cfbc4.tar.gz
nixlib-c515f7036ecd42456c01411bfd79bfc99c6cfbc4.tar.bz2
nixlib-c515f7036ecd42456c01411bfd79bfc99c6cfbc4.tar.lz
nixlib-c515f7036ecd42456c01411bfd79bfc99c6cfbc4.tar.xz
nixlib-c515f7036ecd42456c01411bfd79bfc99c6cfbc4.tar.zst
nixlib-c515f7036ecd42456c01411bfd79bfc99c6cfbc4.zip
Address @yegortimoshenko review
Diffstat (limited to 'nixos/modules/services/backup/tarsnap.nix')
-rw-r--r--nixos/modules/services/backup/tarsnap.nix52
1 files changed, 23 insertions, 29 deletions
diff --git a/nixos/modules/services/backup/tarsnap.nix b/nixos/modules/services/backup/tarsnap.nix
index 88c847ed92cd..4fc7c24813a5 100644
--- a/nixos/modules/services/backup/tarsnap.nix
+++ b/nixos/modules/services/backup/tarsnap.nix
@@ -304,7 +304,7 @@ in
         requires    = [ "network-online.target" ];
         after       = [ "network-online.target" ];
 
-        path = [ pkgs.iputils pkgs.tarsnap pkgs.utillinux ];
+        path = with pkgs; [ iputils tarsnap utillinux ];
 
         # In order for the persistent tarsnap timer to work reliably, we have to
         # make sure that the tarsnap server is reachable after systemd starts up
@@ -314,9 +314,9 @@ in
           while ! ping -q -c 1 v1-0-0-server.tarsnap.com &> /dev/null; do sleep 3; done
         '';
 
-        script =
-          let run = ''tarsnap --configfile "/etc/tarsnap/${name}.conf" \
-                        -c -f "${name}-$(date +"%Y%m%d%H%M%S")" \
+        script = let
+          tarsnap = ''tarsnap --configfile "/etc/tarsnap/${name}.conf"'';
+          run = ''${tarsnap} -c -f "${name}-$(date +"%Y%m%d%H%M%S")" \
                         ${optionalString cfg.verbose "-v"} \
                         ${optionalString cfg.explicitSymlinks "-H"} \
                         ${optionalString cfg.followSymlinks "-L"} \
@@ -329,7 +329,7 @@ in
               if [ ! -e ${cfg.cachedir}/firstrun ]; then
                 ( flock 10
                   flock -u 9
-                  tarsnap --configfile "/etc/tarsnap/${name}.conf" --fsck
+                  ${tarsnap} --fsck
                   flock 9
                 ) 10>${cfg.cachedir}/firstrun
               fi
@@ -351,35 +351,29 @@ in
         description = "Tarsnap restore '${name}'";
         requires    = [ "network-online.target" ];
 
-        path = [ pkgs.iputils pkgs.tarsnap pkgs.utillinux ];
-
-        ##
-        preStart = ''
-          while ! ping -q -c 1 v1-0-0-server.tarsnap.com &> /dev/null; do sleep 3; done
-        '';
+        path = with pkgs; [ iputils tarsnap utillinux ];
 
-        script =
-        let
+        script = let
           tarsnap = ''tarsnap --configfile "/etc/tarsnap/${name}.conf"'';
           lastArchive = ''$(${tarsnap} --list-archives | sort | tail -1)'';
           run = ''${tarsnap} -x -f "${lastArchive}" ${optionalString cfg.verbose "-v"}'';
 
-          in if (cfg.cachedir != null) then ''
-            mkdir -p ${cfg.cachedir}
-            chmod 0700 ${cfg.cachedir}
-
-            ( flock 9
-              if [ ! -e ${cfg.cachedir}/firstrun ]; then
-                ( flock 10
-                  flock -u 9
-                  ${tarsnap} --fsck
-                  flock 9
-                ) 10>${cfg.cachedir}/firstrun
-              fi
-            ) 9>${cfg.cachedir}/lockf
-
-             exec flock ${cfg.cachedir}/firstrun ${run}
-          '' else "exec ${run}";
+        in if (cfg.cachedir != null) then ''
+          mkdir -p ${cfg.cachedir}
+          chmod 0700 ${cfg.cachedir}
+
+          ( flock 9
+            if [ ! -e ${cfg.cachedir}/firstrun ]; then
+              ( flock 10
+                flock -u 9
+                ${tarsnap} --fsck
+                flock 9
+              ) 10>${cfg.cachedir}/firstrun
+            fi
+          ) 9>${cfg.cachedir}/lockf
+
+           exec flock ${cfg.cachedir}/firstrun ${run}
+        '' else "exec ${run}";
 
         serviceConfig = {
           Type = "oneshot";