lol
1{ stdenv
2, lib
3, fetchFromGitHub
4, cargo
5, pkg-config
6, rustPlatform
7, bzip2
8, curl
9, zlib
10, zstd
11, libiconv
12, CoreServices
13}:
14
15stdenv.mkDerivation (finalAttrs: {
16 pname = "git-cinnabar";
17 version = "0.6.2";
18
19 src = fetchFromGitHub {
20 owner = "glandium";
21 repo = "git-cinnabar";
22 rev = finalAttrs.version;
23 hash = "sha256-1Y4zd4rYNRatemDXRMkQQwBJdkfOGfDWk9QBvJOgi7s=";
24 fetchSubmodules = true;
25 };
26
27 nativeBuildInputs = [
28 cargo
29 pkg-config
30 rustPlatform.cargoSetupHook
31 ];
32
33 buildInputs = [
34 bzip2
35 curl
36 zlib
37 zstd
38 ] ++ lib.optionals stdenv.isDarwin [
39 libiconv
40 CoreServices
41 ];
42
43 cargoDeps = rustPlatform.fetchCargoTarball {
44 inherit (finalAttrs) src;
45 hash = "sha256-p85AS2DukUzEbW9UGYmiF3hpnZvPrZ2sRaeA9dU8j/8=";
46 };
47
48 ZSTD_SYS_USE_PKG_CONFIG = true;
49
50 enableParallelBuilding = true;
51
52 installPhase = ''
53 runHook preInstall
54
55 mkdir -p $out/bin
56 install -v target/release/git-cinnabar $out/bin
57 ln -sv git-cinnabar $out/bin/git-remote-hg
58
59 runHook postInstall
60 '';
61
62 meta = {
63 description = "git remote helper to interact with mercurial repositories";
64 homepage = "https://github.com/glandium/git-cinnabar";
65 license = lib.licenses.gpl2Only;
66 maintainers = with lib.maintainers; [ qyliss ];
67 platforms = lib.platforms.all;
68 };
69})