# shell.nix
# A nixpkgs instance that is grabbed from the pinned nixpkgs commit in the lock file
# Useful to avoid using channels when using legacy nix commands
{ 
  pkgs     ? (import ./lib/nixpkgs.nix ) { },
  sops-nix ? (import ./lib/sops-nix.nix) { }
}: {
  default = pkgs.mkShell {
    NIX_CONFIG = "experimental-features = nix-command flakes";
    # imports all files ending in .asc/.gpg
    sopsPGPKeyDirs = [ 
      "keys/hosts"
      "keys/users"
    ];
    
    nativeBuildInputs = [
      pkgs.nix
      pkgs.home-manager
      pkgs.git
      pkgs.vim
      pkgs.alejandra
      pkgs.nixfmt
      pkgs.ssh-to-pgp
      (pkgs.callPackage sops-nix {}).sops-import-keys-hook
    ];
  };
}