I'm trying to use an external (as in not present in nixpkgs) flake in my home-manager (using nix-darwin) config.
The flake has a default output which is the binary produced by buildGoModule:
https://github.com/pcasaretto/dotenv/blob/f41d74aa56c2528c46f58977010c6ce99619921a/flake.nix
          default = buildGoModule {
            pname = "dotenv";
            inherit version;
            # In 'nix develop', we don't need a copy of the source tree
            # in the Nix store.
            src = ./.;
            vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
          };
I've managed to add the flake to my config, it builds but the binary does not show up in my path
https://github.com/pcasaretto/nix-home/commit/18e82337efdb0579588e6633c0ae8006788ae402
# flake.nix
dotenv.url = "github:pcasaretto/dotenv";
dotenv.inputs.nixpkgs.follows = "nixpkgs-unstable";
# ...
home-manager.extraSpecialArgs = { dotenv = dotenv; };
# home.nix
{ config, pkgs, lib, dotenv, ... }:
# ...
home.packages = [
# ...
dotenv
                home.packages needs to include the package from the flake, not the flake itself.
Change:
home.packages = [ # ...
  dotenv
];
to:
home.packages = [ # ...
  dotenv.packages.${pkgs.system}.default
];
If you aren't in a flake (or other purity-enforced) context, you can use builtins.currentSystem instead of pkgs.system.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With