Debugging a flake see what values are

I am trying to see exactly what my flake is doing so I am using nix real to look at things.
I can see the outputs ie end results but I want to see the actual structure of the nix before evaluation the flake.

I am trying to setup a devShell

For example as part of the flake I have

 devShells.default = inputs'.devshell.legacyPackages.mkShell {
      name = "mwb devshell for nix";
      packages = with pkgs; [
        # mwb minimum (macOs does not have git as standard)
        git
        python3Packages.invoke
           ];
    };

How do I show what name has been set to?
in nix real all I get for dev shells is

nix-repl> outputs.devShells.aarch64-darwin.default
Ā«derivation /nix/store/izzdwm34dwrbvq0qfmmpv7qa98hknxii-nix-shell.drvĀ»

And the derivation is the resulting bash script.

Alternatively - is there a lib.trace function that will show the full path of something I have just set?

You should be able to just add .name, so outputs.devShells.aarch64-darwin.default.name. Also, after writing the dot after default and then pressing tab, you should get autocompletion for all the fields available.

1 Like

Ah yes that worked.

What the issue was is that for most other things asking for a value gives all the values that would be expanded.
SO I just typed the string outputs.devShells.aarch64-darwin.default and got just the derivation and so thought there was noting else.