python312Packages.types-aiobotocore: 2.15.2 -> 2.15.2.post3 (#361801)
[NixPkgs.git] / pkgs / by-name / bt / btrfs-auto-snapshot / package.nix
blob7cd30f563bc4445fe5c3bf9b3447dfd6bcf5fc47
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   makeWrapper,
6   coreutils,
7   getopt,
8   gnugrep,
9   gnused,
10   gawk,
11   btrfs-progs,
12   syslogSupport ? true,
13   util-linux ? null,
15 assert syslogSupport -> util-linux != null;
16 stdenv.mkDerivation rec {
17   version = "2.0.4";
18   pname = "btrfs-auto-snapshot";
20   src = fetchFromGitHub {
21     owner = "hunleyd";
22     repo = pname;
23     rev = "v${version}";
24     hash = "sha256-QpuwkGaYAkpu5hYyb360Mr5tHsZc2LzMlKtpS8CyyhI=";
25   };
27   dontBuild = true;
29   nativeBuildInputs = [ makeWrapper ];
31   installPhase = ''
32     install -Dm755 btrfs-auto-snapshot $out/bin/btrfs-auto-snapshot
33   '';
35   wrapperPath = lib.makeBinPath (
36     [
37       coreutils
38       getopt
39       gnugrep
40       gnused
41       gawk
42       btrfs-progs
43     ]
44     ++ lib.optional syslogSupport util-linux
45   );
47   postFixup = ''
48     wrapProgram $out/bin/btrfs-auto-snapshot \
49       --prefix PATH : "${wrapperPath}"
50   '';
52   meta = with lib; {
53     description = "BTRFS Automatic Snapshot Service for Linux";
54     homepage = "https://github.com/hunleyd/btrfs-auto-snapshot";
55     license = licenses.gpl2;
56     mainProgram = "btrfs-auto-snapshot";
57     maintainers = with maintainers; [ motiejus ];
58     platforms = platforms.linux;
60     longDescription = ''
61       btrfs-auto-snapshot is a Bash script designed to bring as much of the
62       functionality of the wonderful ZFS snapshot tool zfs-auto-snapshot to
63       BTRFS as possible. Designed to run from cron (using
64       /etc/cron.{daily,hourly,weekly}) it automatically creates a snapshot of
65       the specified BTRFS filesystem (or, optionally, all of them) and then
66       automatically purges the oldest snapshots of that type (hourly, daily, et
67       al) based on a user-defined retention policy.
69       Snapshots are stored in a '.btrfs' directory at the root of the BTRFS
70       filesystem being snapped and are read-only by default.
71     '';
72   };