Skip to content
Snippets Groups Projects
shell.nix 1 KiB
Newer Older
  • Learn to ignore specific revisions
  •   pinned-pkgs = import ./nixpkgs.nix { };
    
    { pkgs ? pinned-pkgs, lib ? pkgs.lib, python ? pkgs.python3 }:
    
      tools = pkgs.callPackage ./tools {};
    
      # When a path (such as `pkgs.path`) is interpolated into a string then nix
      # first adds that path to the store, and then interpolates the store path
      # into the string.  We use `builtins.toString` to convert the path to a
      # string without copying it to the store before interpolating. Either the
    
      # path is already in the store (e.g. when `pkgs` is `pinned-pkgs`) so we
    
      # avoid making a second copy with a longer name, or the user passed in local
      # path (e.g. a checkout of nixpkgs) and we point at it directly, rather than
      # a snapshot of it.
      # See https://github.com/NixOS/nix/issues/200 and https://github.com/NixOS/nix/issues/1728
    
        export NIX_PATH="nixpkgs=${builtins.toString pkgs.path}";
    
      # Run the shellHook from tools
      inputsFrom = [tools];