mirror of
https://github.com/nix-community/home-manager.git
synced 2025-11-08 11:36:05 +01:00
We have stuff that's referenced in CI but not available as flake outputs to build. Adding default.nix outputs to flake.nix so flake users can reference them easier.
72 lines
1.9 KiB
Nix
72 lines
1.9 KiB
Nix
{
|
|
description = "Support developing Home Manager documentation";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
scss-reset = {
|
|
url = "github:andreymatin/scss-reset/1.4.2";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
outputs = { self, nixpkgs, scss-reset }:
|
|
let
|
|
supportedSystems = [
|
|
"aarch64-darwin"
|
|
"aarch64-linux"
|
|
"i686-linux"
|
|
"x86_64-darwin"
|
|
"x86_64-linux"
|
|
];
|
|
|
|
# Note, this should be "the standard library" + HM extensions.
|
|
lib = import ../modules/lib/stdlib-extended.nix nixpkgs.lib;
|
|
|
|
forAllSystems = lib.genAttrs supportedSystems;
|
|
|
|
flakePkgs = pkgs: {
|
|
p-build = pkgs.writeShellScriptBin "p-build" ''
|
|
set -euo pipefail
|
|
|
|
export PATH=${lib.makeBinPath [ pkgs.coreutils pkgs.rsass ]}
|
|
|
|
tmpfile=$(mktemp -d)
|
|
trap "rm -r $tmpfile" EXIT
|
|
|
|
ln -s "${scss-reset}/build" "$tmpfile/scss-reset"
|
|
|
|
rsass --load-path="$tmpfile" --style compressed \
|
|
./static/style.scss > ./static/style.css
|
|
echo "Generated ./static/style.css"
|
|
'';
|
|
};
|
|
|
|
releaseInfo = lib.importJSON ../release.json;
|
|
in {
|
|
devShells = forAllSystems (system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
fpkgs = flakePkgs pkgs;
|
|
in {
|
|
default = pkgs.mkShell {
|
|
name = "hm-docs";
|
|
packages = [ fpkgs.p-build ];
|
|
};
|
|
});
|
|
|
|
# Expose the docs outputs
|
|
packages = forAllSystems (system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
docs = import ./default.nix {
|
|
inherit pkgs lib;
|
|
release = releaseInfo.release;
|
|
isReleaseBranch = releaseInfo.isReleaseBranch;
|
|
};
|
|
in {
|
|
inherit (docs) manPages jsonModuleMaintainers;
|
|
inherit (docs.manual) html htmlOpenTool;
|
|
inherit (docs.options) json;
|
|
});
|
|
};
|
|
}
|