diff --git a/shell.nix b/shell.nix index 3b33b7e..2e822a7 100644 --- a/shell.nix +++ b/shell.nix @@ -1,16 +1,17 @@ # Shell for bootstrapping flake-enabled nix and home-manager, from any nix version { pkgs ? let - system = builtins.currentSystem or "Unknown system"; + inherit (builtins) currentSystem pathExists fromJSON readFile; nixpkgs = - if builtins.pathExists ./flake.lock + if pathExists ./flake.lock then # If we have a lock, fetch locked nixpkgs - let lock = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.nixpkgs.locked; + let + inherit ((fromJSON (readFile ./flake.lock)).nodes.nixpkgs) locked; in fetchTarball { - url = "https://github.com/nixos/nixpkgs/archive/${lock.rev}.tar.gz"; - sha256 = lock.narHash; + url = "https://github.com/nixos/nixpkgs/archive/${locked.rev}.tar.gz"; + sha256 = locked.narHash; } else # If not (probably because not flake-enabled), fetch nixos-unstable impurely @@ -18,13 +19,16 @@ url = "https://github.com/nixos/nixpkgs/archive/nixos-unstable.tar.gz"; }; + system = currentSystem; + overlays = [ ]; + in - import nixpkgs { inherit system; } + import nixpkgs { inherit system overlays; } , ... }: let # Enable experimental features without having to specify the argument - nix = (pkgs.writeShellScriptBin) "nix" '' + nix = pkgs.writeShellScriptBin "nix" '' exec ${pkgs.nixFlakes}/bin/nix --experimental-features "nix-command flakes" "$@" ''; in