/ flake.nix
flake.nix
 1  {
 2    description = "shell for Airbyte connectors";
 3  
 4    inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
 5  
 6    outputs = { self, nixpkgs }:
 7      let
 8        stableSystems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
 9        forAllSystems = nixpkgs.lib.genAttrs stableSystems;
10        pkgsFor = nixpkgs.lib.genAttrs stableSystems (
11          system: import nixpkgs { inherit system; config.allowUnfree = true; }
12        );
13      in rec {
14        devShells = forAllSystems (system: let
15          pkgs = pkgsFor.${system};
16        in {
17          default = let
18            pythonPkgs = pkgs.python312.withPackages (
19              _: with (pkgs.python312Packages); [
20                ipython pyyaml jinja2 PyGithub
21              ]
22            );
23          in pkgs.mkShellNoCC {
24            packages = with pkgs.buildPackages; [
25              # misc
26              git jq silver-searcher direnv
27              pythonPkgs
28              ruff
29            ];
30  
31            shellHook = ''
32              echo "Good hacking."
33            '';
34          };
35        });
36      };
37  }