{ config, lib, pkgs, ... }:

{
  home.packages = with pkgs; [
    tarsnap
  ];

  home.file.".tarsnaprc".text = ''
    ### Recommended options

    # Tarsnap cache directory
    cachedir /home/grfn/.cache/tarsnap

    # Tarsnap key file
    keyfile /home/grfn/.private/tarsnap.key

    # Don't archive files which have the nodump flag set.
    nodump

    # Print statistics when creating or deleting archives.
    print-stats

    # Create a checkpoint once per GB of uploaded data.
    checkpoint-bytes 1G

    ### Commonly useful options

    # Use SI prefixes to make numbers printed by --print-stats more readable.
    humanize-numbers

    ### Other options, not applicable to most systems

    # Aggressive network behaviour: Use multiple TCP connections when
    # writing archives.  Use of this option is recommended only in
    # cases where TCP congestion control is known to be the limiting
    # factor in upload performance.
    #aggressive-networking

    # Exclude files and directories matching specified patterns.
    # Only one file or directory per command; multiple "exclude"
    # commands may be given.
    #exclude

    # Include only files and directories matching specified patterns.
    # Only one file or directory per command; multiple "include"
    # commands may be given.
    #include

    # Attempt to reduce tarsnap memory consumption.  This option
    # will slow down the process of creating archives, but may help
    # on systems where the average size of files being backed up is
    # less than 1 MB.
    #lowmem

    # Try even harder to reduce tarsnap memory consumption.  This can
    # significantly slow down tarsnap, but reduces its memory usage
    # by an additional factor of 2 beyond what the lowmem option does.
    #verylowmem

    # Snapshot time.  Use this option if you are backing up files
    # from a filesystem snapshot rather than from a "live" filesystem.
    #snaptime <file>
  '';
}
