Nix flake to build latest versions of various dev tools

add fish

Changed files
+42 -2
+17
flake.lock
··· 105 105 "type": "github" 106 106 } 107 107 }, 108 + "fish": { 109 + "flake": false, 110 + "locked": { 111 + "lastModified": 1757769253, 112 + "narHash": "sha256-Hyzrl0d9cYpUV4rnaYtQh+XTaSer8LDDR1nI3/0MKZk=", 113 + "owner": "fish-shell", 114 + "repo": "fish-shell", 115 + "rev": "f69c2a4d4af20108bfe1521152439e49a0fa3dbe", 116 + "type": "github" 117 + }, 118 + "original": { 119 + "owner": "fish-shell", 120 + "repo": "fish-shell", 121 + "type": "github" 122 + } 123 + }, 108 124 "flake-compat": { 109 125 "locked": { 110 126 "lastModified": 1696426674, ··· 310 326 }, 311 327 "root": { 312 328 "inputs": { 329 + "fish": "fish", 313 330 "gleam-nix": "gleam-nix", 314 331 "helix": "helix", 315 332 "janet": "janet",
+25 -2
flake.nix
··· 2 2 description = "Various dev tools I often want to install from source"; 3 3 4 4 inputs = { 5 + fish.url = "github:fish-shell/fish-shell"; 6 + fish.flake = false; 5 7 jj.url = "github:jj-vcs/jj/v0.33.0"; 6 8 jj.inputs.nixpkgs.follows = "nixpkgs"; 7 9 helix.url = "github:helix-editor/helix"; ··· 9 11 helix.inputs.rust-overlay.follows = "jj/rust-overlay"; 10 12 11 13 gleam-nix.url = "github:vic/gleam-nix"; 12 - gleam-nix.inputs.nixpkgs.follows = "nixpkgs"; 13 14 gleam-nix.inputs.gleam.url = "github:gleam-lang/gleam/v1.12.0"; 15 + gleam-nix.inputs.nixpkgs.follows = "nixpkgs"; 14 16 janet.url = "github:janet-lang/janet/v1.39.1"; 15 17 janet.flake = false; 16 18 }; ··· 18 20 outputs = 19 21 { nixpkgs, ... }@inputs: 20 22 let 21 - inherit (builtins) attrValues removeAttrs; 23 + inherit (builtins) 24 + attrValues 25 + removeAttrs 26 + concatStringsSep 27 + replaceStrings 28 + ; 22 29 metaPackages = [ 23 30 "all" 24 31 "dev" ··· 33 40 in 34 41 { 35 42 packages = forAllSystems (system: { 43 + fish = nixpkgs.legacyPackages.${system}.fish.overrideAttrs ( 44 + finalAttrs: previousAttrs: { 45 + src = inputs.fish; 46 + version = inputs.fish.shortRev; 47 + cargoDeps = nixpkgs.legacyPackages.${system}.rustPlatform.fetchCargoVendor { 48 + inherit (finalAttrs) src patches; 49 + hash = "sha256-zXaLTROJ90+Gv8M9B9zIcu9MJdtZskgvMSsms+NNAOc="; 50 + }; 51 + postPatch = concatStringsSep "\n" [ 52 + "rm tests/checks/version.fish" 53 + (replaceStrings [ "src/tests/highlight.rs" ] [ "src/highlight/tests.rs" ] previousAttrs.postPatch) 54 + ]; 55 + } 56 + ); 57 + 36 58 jj = inputs.jj.packages.${system}.default; 37 59 helix = inputs.helix.packages.${system}.default; 38 60 ··· 45 67 dev = nixpkgs.legacyPackages.${system}.buildEnv { 46 68 name = "pvsr/dev-tools"; 47 69 paths = with inputs.self.packages.${system}; [ 70 + fish 48 71 jj 49 72 helix 50 73 ];