14 devenv, # required to run version test
18 devenv_nix = nixVersions.nix_2_24.overrideAttrs (old: {
19 version = "2.24-devenv";
20 src = fetchFromGitHub {
23 rev = "f6c5ae4c1b2e411e6b1e6a8181cc84363d6a7546";
24 hash = "sha256-X8ES7I1cfNhR9oKp06F6ir4Np70WGZU5sfCOuNBEwMg=";
27 doInstallCheck = false;
32 rustPlatform.buildRustPackage {
36 src = fetchFromGitHub {
40 hash = "sha256-FhlknassIb3rKEucqnfFAzgny1ANmenJcTyRaXYwbA0=";
43 cargoHash = "sha256-dJ8A2kVXkpJcRvMLE/IawFUZNJqok/IRixTRGtLsE3w=";
45 buildAndTestSubdir = "devenv";
47 # Force sqlx to use the prepared queries
49 # A local database to use for preparing queries
50 DATABASE_URL = "sqlite:nix-eval-cache.db";
53 cargo sqlx database setup --source devenv-eval-cache/migrations
54 cargo sqlx prepare --workspace
64 buildInputs = [ openssl ];
68 setDefaultLocaleArchive = lib.optionalString (glibcLocalesUtf8 != null) ''
69 --set-default LOCALE_ARCHIVE ${glibcLocalesUtf8}/lib/locale/locale-archive
73 wrapProgram $out/bin/devenv \
74 --prefix PATH ":" "$out/bin:${cachix}/bin" \
75 --set DEVENV_NIX ${devenv_nix} \
76 ${setDefaultLocaleArchive}
79 cargo xtask generate-manpages --out-dir man
82 # Generate shell completions
84 for shell in bash fish zsh; do
85 cargo xtask generate-shell-completion $shell --out-dir $compdir
88 installShellCompletion --cmd devenv \
89 --bash $compdir/devenv.bash \
90 --fish $compdir/devenv.fish \
91 --zsh $compdir/_devenv
95 version = testers.testVersion {
97 command = "export XDG_DATA_HOME=$PWD; devenv version";
102 changelog = "https://github.com/cachix/devenv/releases/tag/v${version}";
103 description = "Fast, Declarative, Reproducible, and Composable Developer Environments";
104 homepage = "https://github.com/cachix/devenv";
105 license = lib.licenses.asl20;
106 mainProgram = "devenv";
107 maintainers = with lib.maintainers; [ domenkozar ];