base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / de / devenv / package.nix
blob5e1ab56f7026c29e4afff8da3ce413524d537e0b
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , makeWrapper
5 , rustPlatform
6 , testers
7 , cachix
8 , darwin
9 , sqlx-cli
10 , nixVersions
11 , openssl
12 , pkg-config
13 , devenv  # required to run version test
16 let
17   devenv_nix = nixVersions.nix_2_24.overrideAttrs (old: {
18     version = "2.24-devenv";
19     src = fetchFromGitHub {
20       owner = "domenkozar";
21       repo = "nix";
22       rev = "f6c5ae4c1b2e411e6b1e6a8181cc84363d6a7546";
23       hash = "sha256-X8ES7I1cfNhR9oKp06F6ir4Np70WGZU5sfCOuNBEwMg=";
24     };
25     doCheck = false;
26     doInstallCheck = false;
27   });
29   version = "1.3.1";
30 in rustPlatform.buildRustPackage {
31   pname = "devenv";
32   inherit version;
34   src = fetchFromGitHub {
35     owner = "cachix";
36     repo = "devenv";
37     rev = "v${version}";
38     hash = "sha256-FhlknassIb3rKEucqnfFAzgny1ANmenJcTyRaXYwbA0=";
39   };
41   cargoHash = "sha256-dJ8A2kVXkpJcRvMLE/IawFUZNJqok/IRixTRGtLsE3w=";
43   buildAndTestSubdir = "devenv";
45   # Force sqlx to use the prepared queries
46   SQLX_OFFLINE = true;
47   # A local database to use for preparing queries
48   DATABASE_URL = "sqlite:nix-eval-cache.db";
50   preBuild = ''
51     cargo sqlx database setup --source devenv-eval-cache/migrations
52     cargo sqlx prepare --workspace
53   '';
55   nativeBuildInputs = [ makeWrapper pkg-config sqlx-cli ];
57   buildInputs = [ openssl ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
58     darwin.apple_sdk.frameworks.SystemConfiguration
59   ];
61   postInstall = ''
62     wrapProgram $out/bin/devenv --set DEVENV_NIX ${devenv_nix} --prefix PATH ":" "$out/bin:${cachix}/bin"
63   '';
65   passthru.tests = {
66     version = testers.testVersion {
67       package = devenv;
68       command = "export XDG_DATA_HOME=$PWD; devenv version";
69     };
70   };
72   meta = {
73     changelog = "https://github.com/cachix/devenv/releases/tag/v${version}";
74     description = "Fast, Declarative, Reproducible, and Composable Developer Environments";
75     homepage = "https://github.com/cachix/devenv";
76     license = lib.licenses.asl20;
77     mainProgram = "devenv";
78     maintainers = with lib.maintainers; [ domenkozar ];
79   };