1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 coreutils,
6 makeWrapper,
7 rsync,
8 python3,
9}:
10
11stdenv.mkDerivation rec {
12 pname = "mergerfs-tools";
13 version = "20230912";
14
15 src = fetchFromGitHub {
16 owner = "trapexit";
17 repo = pname;
18 rev = "80d6c9511da554009415d67e7c0ead1256c1fc41";
19 hash = "sha256-9sn2ziIjes2squSGbjjXVch2zDFjQruWB4282p4jWcY=";
20 };
21
22 nativeBuildInputs = [ makeWrapper ];
23 buildInputs = [ python3 ];
24
25 makeFlags = [
26 "INSTALL=${coreutils}/bin/install"
27 "PREFIX=${placeholder "out"}"
28 ];
29
30 postInstall = ''
31 wrapProgram $out/bin/mergerfs.balance --prefix PATH : ${lib.makeBinPath [ rsync ]}
32 wrapProgram $out/bin/mergerfs.dup --prefix PATH : ${lib.makeBinPath [ rsync ]}
33 wrapProgram $out/bin/mergerfs.mktrash --prefix PATH : ${lib.makeBinPath [ python3.pkgs.xattr ]}
34 '';
35
36 meta = with lib; {
37 description = "Optional tools to help manage data in a mergerfs pool";
38 homepage = "https://github.com/trapexit/mergerfs-tools";
39 license = licenses.isc;
40 platforms = platforms.linux;
41 maintainers = with maintainers; [ makefu ];
42 };
43}