1{ lib, stdenv, bundlerEnv, ruby, bundlerUpdateScript, makeWrapper }:
2
3stdenv.mkDerivation rec {
4 pname = "lvmsync";
5 version = (import ./gemset.nix).${pname}.version;
6
7 nativeBuildInputs = [ makeWrapper ];
8
9 dontUnpack = true;
10
11 installPhase = let
12 env = bundlerEnv {
13 name = "${pname}-${version}-gems";
14 ruby = ruby;
15 gemfile = ./Gemfile;
16 lockfile = ./Gemfile.lock;
17 gemset = ./gemset.nix;
18 };
19 in ''
20 mkdir -p $out/bin
21 makeWrapper ${env}/bin/lvmsync $out/bin/lvmsync
22 '';
23
24 passthru.updateScript = bundlerUpdateScript "lvmsync";
25
26 meta = with lib; {
27 description = "Optimised synchronisation of LVM snapshots over a network";
28 homepage = "https://theshed.hezmatt.org/lvmsync/";
29 license = licenses.gpl3;
30 platforms = platforms.all;
31 maintainers = with maintainers; [ jluttine nicknovitski ];
32 };
33
34}