Unverified Commit 9ca0bd9d authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

Merge pull request #244467 from wamserma/tarsnap-add-package-option

tarsnap: add package option
parents c935eeec a936b9ed
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ in
    services.tarsnap = {
      enable = mkEnableOption (lib.mdDoc "periodic tarsnap backups");

      package = mkPackageOption pkgs "tarsnap" { };

      keyfile = mkOption {
        type = types.str;
        default = "/root/tarsnap.key";
@@ -307,7 +309,7 @@ in
        requires    = [ "network-online.target" ];
        after       = [ "network-online.target" ];

        path = with pkgs; [ iputils tarsnap util-linux ];
        path = with pkgs; [ iputils gcfg.package util-linux ];

        # 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
@@ -318,7 +320,7 @@ in
        '';

        script = let
          tarsnap = ''tarsnap --configfile "/etc/tarsnap/${name}.conf"'';
          tarsnap = ''${lib.getExe gcfg.package} --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"} \
@@ -355,10 +357,10 @@ in
        description = "Tarsnap restore '${name}'";
        requires    = [ "network-online.target" ];

        path = with pkgs; [ iputils tarsnap util-linux ];
        path = with pkgs; [ iputils gcfg.package util-linux ];

        script = let
          tarsnap = ''tarsnap --configfile "/etc/tarsnap/${name}.conf"'';
          tarsnap = ''${lib.getExe gcfg.package} --configfile "/etc/tarsnap/${name}.conf"'';
          lastArchive = "$(${tarsnap} --list-archives | sort | tail -1)";
          run = ''${tarsnap} -x -f "${lastArchive}" ${optionalString cfg.verbose "-v"}'';
          cachedir = escapeShellArg cfg.cachedir;
@@ -402,6 +404,6 @@ in
        { text = configFile name cfg;
        }) gcfg.archives;

    environment.systemPackages = [ pkgs.tarsnap ];
    environment.systemPackages = [ gcfg.package ];
  };
}