flake.nix
1 { 2 description = "A Nix-flake-based Clojure development environment"; 3 4 inputs = { 5 nixpkgs.url = "github:NixOS/nixpkgs/release-22.11"; 6 flake-utils.url = "github:numtide/flake-utils"; 7 }; 8 9 outputs = 10 { self 11 , nixpkgs 12 , flake-utils 13 }: 14 15 flake-utils.lib.eachDefaultSystem (system: 16 let 17 javaVersion = 17; 18 overlays = [ 19 (self: super: rec { 20 jdk = super."jdk${toString javaVersion}"; 21 boot = super.boot.override { 22 inherit jdk; 23 }; 24 clojure = super.clojure.override { 25 inherit jdk; 26 }; 27 leiningen = super.leiningen.override { 28 inherit jdk; 29 }; 30 }) 31 ]; 32 pkgs = import nixpkgs { inherit overlays system; }; 33 in 34 { 35 devShells.default = pkgs.mkShell { 36 packages = with pkgs; [ boot clojure leiningen ]; 37 38 shellHook = '' 39 ${pkgs.clojure}/bin/clj --version 40 ''; 41 }; 42 }); 43 }