biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / system / zxfer / default.nix
blob802688cad5837efc0a88d9df50842b92896f67f3
1 { lib
2 , bash
3 , fetchFromGitHub
4 , installShellFiles
5 , coreutils
6 , gawk
7 , gnugrep
8 , gnused
9 , openssh
10 , resholve
11 , rsync
12 , which
13 , zfs
16 resholve.mkDerivation rec {
17   pname = "zxfer";
18   version = "1.1.7";
20   src = fetchFromGitHub {
21     owner = "allanjude";
22     repo = pname;
23     rev = "v${version}";
24     hash = "sha256-11SQJcD3GqPYBIgaycyKkc62/diVKPuuj2Or97j+NZY=";
25   };
27   nativeBuildInputs = [ installShellFiles ];
29   # these may point to paths on remote systems, calculated at runtime, thus we cannot fix them
30   # we can only set their initial values, and let them remain dynamic
31   postPatch = ''
32     substituteInPlace zxfer \
33       --replace 'LCAT=""'                'LCAT=${coreutils}/bin/cat' \
34       --replace 'LZFS=$( which zfs )'    'LZFS=${zfs}/bin/zfs'
35   '';
37   installPhase = ''
38     runHook preInstall
40     installManPage zxfer.1m zxfer.8
41     install -Dm755 zxfer -t $out/bin/
43     runHook postInstall
44   '';
46   solutions.default = {
47     scripts = [ "bin/zxfer" ];
48     interpreter = "${bash}/bin/sh";
49     inputs = [
50       coreutils
51       gawk
52       gnugrep
53       gnused
54       openssh
55       rsync
56       which
57     ];
58     fake.external = [
59       "kldload" # bsd builtin
60       "kldstat" # bsd builtin
61       "svcadm" # solaris builtin
62     ];
63     keep = {
64       "$LCAT" = true;
65       "$LZFS" = true;
66       "$PROGRESS_DIALOG" = true;
67       "$RZFS" = true;
68       "$input_optionts" = true;
69       "$option_O" = true;
70       "$option_T" = true;
71     };
72     fix = {
73       "$AWK" = [ "awk" ];
74       "$RSYNC" = [ "rsync" ];
75     };
76     execer = [ "cannot:${rsync}/bin/rsync" ];
77   };
79   meta = with lib; {
80     description = "Popular script for managing ZFS snapshot replication";
81     homepage = "https://github.com/allanjude/zxfer";
82     changelog = "https://github.com/allanjude/zxfer/releases/tag/v${version}";
83     license = licenses.bsd2;
84     maintainers = with lib.maintainers; [ urandom ];
85     mainProgram = "zxfer";
86   };