1{
2 lib,
3 idris2Packages,
4 fetchFromGitHub,
5 clang,
6 chez,
7 gmp,
8 zsh,
9 makeBinaryWrapper,
10 stdenv,
11}:
12let
13 inherit (idris2Packages) idris2Api buildIdris;
14 toml = buildIdris {
15 ipkgName = "toml";
16 version = "2022-05-05";
17 src = fetchFromGitHub {
18 owner = "cuddlefishie";
19 repo = "toml-idr";
20 rev = "b4f5a4bd874fa32f20d02311a62a1910dc48123f";
21 hash = "sha256-+bqfCE6m0aJ+S65urT+zQLuZUtUkC1qcuSsefML/fAE=";
22 };
23 idrisLibraries = [ ];
24 };
25 filepath = buildIdris {
26 ipkgName = "filepath";
27 version = "2023-12-04";
28 src = fetchFromGitHub {
29 owner = "stefan-hoeck";
30 repo = "idris2-filepath";
31 rev = "eac02d51b631633f32330c788bcebeb24221fa09";
32 hash = "sha256-noylxQvT2h50H0xmAiwe/cI6vz5gkbOhSD7mXuhJGfU=";
33 };
34 idrisLibraries = [ ];
35 };
36 packPkg = buildIdris {
37 ipkgName = "pack";
38 version = "2024-02-07";
39 src = fetchFromGitHub {
40 owner = "stefan-hoeck";
41 repo = "idris2-pack";
42 rev = "305123401a28a57b02f750c589c35af628b2a5eb";
43 hash = "sha256-IPAkwe6fEYWT3mpyKKkUPU0qFJX9gGIM1f7OeNWyB9w=";
44 };
45 idrisLibraries = [
46 idris2Api
47 toml
48 filepath
49 ];
50
51 nativeBuildInputs = [ makeBinaryWrapper ];
52
53 buildInputs = [
54 gmp
55 clang
56 chez
57 ]
58 ++ lib.optionals stdenv.hostPlatform.isDarwin [ zsh ];
59
60 postInstall = ''
61 wrapProgram $out/bin/pack \
62 --suffix C_INCLUDE_PATH : ${lib.makeIncludePath [ gmp ]} \
63 --suffix PATH : ${
64 lib.makeBinPath (
65 [
66 clang
67 chez
68 ]
69 ++ lib.optionals stdenv.hostPlatform.isDarwin [ zsh ]
70 )
71 }
72 '';
73
74 meta = {
75 description = "Idris2 Package Manager with Curated Package Collections";
76 mainProgram = "pack";
77 homepage = "https://github.com/stefan-hoeck/idris2-pack";
78 license = lib.licenses.bsd3;
79 maintainers = with lib.maintainers; [ mattpolzin ];
80 inherit (idris2Packages.idris2.meta) platforms;
81 };
82 };
83in
84packPkg.executable