/ flake.nix
flake.nix
 1  {
 2    description = "Nix flake development shell.";
 3  
 4    inputs = {
 5      nixpkgs.url = "nixpkgs/nixos-24.05";
 6    };
 7  
 8    outputs =
 9      { self, nixpkgs }:
10      let
11        supportedSystems = [
12          "x86_64-linux"
13          "aarch64-linux"
14          "x86_64-darwin"
15          "aarch64-darwin"
16        ];
17        forEachSystem = nixpkgs.lib.genAttrs supportedSystems;
18        pkgsFor = forEachSystem (system: import nixpkgs { inherit system; });
19      in
20      rec {
21        formatter = forEachSystem (system: pkgsFor.${system}.nixpkgs-fmt);
22  
23        devShells = forEachSystem (system: {
24          default = pkgsFor.${system}.mkShellNoCC {
25            packages = with pkgsFor.${system}.buildPackages; [
26              yarn # 1.22.22
27              nodejs_20 # v20.15.1
28              ghp-import # 2.1.0
29            ];
30          };
31        });
32      };
33  }