mirror of
https://github.com/nix-community/home-manager.git
synced 2025-11-08 11:36:05 +01:00
Prepare inclusion in nixos-search (#2971)
* Add flake.lock and clean up flake.nix Add a lockfile to work around https://github.com/NixOS/nix/issues/6541 (and because it's a good idea anyway). Also use flake-utils, and restrict ourselves to the five platforms supported by nixpkgs. Otherwise, the IFD for nmd fails on weird platforms. This fixes `nix flake check`. Remove the redundant `apps` output, see https://github.com/nix-community/home-manager/pull/2442#issuecomment-1133670487 * nixos,nix-darwin: factor out into a common module * nixos,nix-darwin: make `home-managers.users` shallowly visible Make sure the option is included in the NixOS/nix-darwin manual (but the HM submodule options aren't). Also add a static description to the HM submodule type so that we don't need to evaluate the submodules just to build the option manual. This makes nixos-search able to index the home-manager flake. Also clean up some TODOs. * flake: add nmd and nmt This avoids having to use `pkgs.fetchFromGitLab` in an IFD, which causes issues when indexing packages with nixos-search because `pkgs` is instantiated with every platform.
This commit is contained in:
parent
2070389247
commit
64ab7d6e8d
12 changed files with 354 additions and 347 deletions
75
flake.nix
75
flake.nix
|
|
@ -1,43 +1,31 @@
|
|||
{
|
||||
description = "Home Manager for Nix";
|
||||
|
||||
outputs = { self, nixpkgs }:
|
||||
let
|
||||
# List of systems supported by home-manager binary
|
||||
supportedSystems = with nixpkgs.lib.platforms; linux ++ darwin;
|
||||
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
inputs.nmd.url = "gitlab:rycee/nmd";
|
||||
inputs.nmd.flake = false;
|
||||
inputs.nmt.url = "gitlab:rycee/nmt";
|
||||
inputs.nmt.flake = false;
|
||||
|
||||
# Function to generate a set based on supported systems
|
||||
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
||||
inputs.utils.url = "github:numtide/flake-utils";
|
||||
inputs.flake-compat.url = "github:edolstra/flake-compat";
|
||||
inputs.flake-compat.flake = false;
|
||||
|
||||
nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; });
|
||||
in rec {
|
||||
nixosModules.home-manager = import ./nixos;
|
||||
nixosModule = self.nixosModules.home-manager;
|
||||
outputs = { self, nixpkgs, nmd, utils, ... }:
|
||||
{
|
||||
nixosModules = rec {
|
||||
home-manager = import ./nixos;
|
||||
default = home-manager;
|
||||
};
|
||||
# deprecated in Nix 2.8
|
||||
nixosModule = self.nixosModules.default;
|
||||
|
||||
darwinModules.home-manager = import ./nix-darwin;
|
||||
darwinModule = self.darwinModules.home-manager;
|
||||
|
||||
packages = forAllSystems (system:
|
||||
let docs = import ./docs { pkgs = nixpkgsFor.${system}; };
|
||||
in {
|
||||
home-manager = nixpkgsFor.${system}.callPackage ./home-manager { };
|
||||
docs-html = docs.manual.html;
|
||||
docs-manpages = docs.manPages;
|
||||
docs-json = docs.options.json;
|
||||
default = self.packages.${system}.home-manager;
|
||||
});
|
||||
|
||||
# defaultPackage is deprecated as of Nix 2.7.0
|
||||
defaultPackage = forAllSystems (system: self.packages.${system}.default);
|
||||
|
||||
apps = forAllSystems (system: {
|
||||
home-manager = {
|
||||
type = "app";
|
||||
program = "${defaultPackage.${system}}/bin/home-manager";
|
||||
};
|
||||
});
|
||||
|
||||
defaultApp = forAllSystems (system: apps.${system}.home-manager);
|
||||
darwinModules = rec {
|
||||
home-manager = import ./nix-darwin;
|
||||
default = home-manager;
|
||||
};
|
||||
# unofficial; deprecated in Nix 2.8
|
||||
darwinModule = self.darwinModules.default;
|
||||
|
||||
lib = {
|
||||
hm = import ./modules/lib { lib = nixpkgs.lib; };
|
||||
|
|
@ -56,5 +44,22 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
} // utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
docs = import ./docs {
|
||||
inherit pkgs;
|
||||
nmdSrc = nmd;
|
||||
};
|
||||
in {
|
||||
packages = rec {
|
||||
home-manager = pkgs.callPackage ./home-manager { };
|
||||
docs-html = docs.manual.html;
|
||||
docs-manpages = docs.manPages;
|
||||
docs-json = docs.options.json;
|
||||
default = home-manager;
|
||||
};
|
||||
# deprecated in Nix 2.7
|
||||
defaultPackage = self.packages.${system}.default;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue