1
0

pkgs/nixfiles-docs-generate-pkgs-md: Automatically generate package documentation

This commit is contained in:
2025-11-23 11:56:45 +01:00
parent 9faabcd01e
commit 3ddbfb19a6
6 changed files with 66 additions and 0 deletions

3
docs/pages/Packages.md Normal file
View File

@@ -0,0 +1,3 @@
# Packages
This page is generated on build time.

View File

@@ -0,0 +1,8 @@
{
pkgs,
}:
pkgs.clerie-build-support.writePythonScript {
name = "nixfiles-docs-generate-pkgs-md";
text = builtins.readFile ./nixfiles-docs-generate-pkgs-md.py;
}

View File

@@ -0,0 +1,30 @@
#!/usr/bin/env python3
import argparse
import json
from pathlib import Path
parser = argparse.ArgumentParser(prog="generate-pkgs-docs.py")
parser.add_argument("pkgs_json_file", type=Path)
args = parser.parse_args()
packages = json.loads(args.pkgs_json_file.read_text())
print("""---
hide:
- navigation
---
# Packages
""")
for package in packages:
print(f"## {package['name']}")
print("")
print("* Build status: "
f"[x86_64-linux](https://hydra.clerie.de/job/nixfiles/nixfiles/packages.x86_64-linux.{package['name']}) | "
f"[aarch64-linux](https://hydra.clerie.de/job/nixfiles/nixfiles/packages.aarch64-linux.{package['name']})"
)
print("")

View File

@@ -0,0 +1,19 @@
{
lib,
pkgs,
writeText,
}:
let
pkgNames = builtins.filter (attrName: attrName != "nixfiles-docs-pkgs") (builtins.attrNames (import ../../pkgs/overlay.nix null null));
pkgsDocs = builtins.map (pkgName: {
name = pkgName;
meta = pkgs."${pkgName}".meta;
}) pkgNames;
in
writeText "pkgs.json" (
builtins.toJSON pkgsDocs
)

View File

@@ -2,7 +2,9 @@
stdenv,
mkdocs-material,
nixfiles-docs-generate-options-md,
nixfiles-docs-generate-pkgs-md,
nixfiles-docs-options,
nixfiles-docs-pkgs,
}:
stdenv.mkDerivation {
@@ -13,10 +15,12 @@ stdenv.mkDerivation {
buildInputs = [
mkdocs-material
nixfiles-docs-generate-options-md
nixfiles-docs-generate-pkgs-md
];
buildPhase = ''
nixfiles-docs-generate-options-md ${nixfiles-docs-options} > pages/Options.md
nixfiles-docs-generate-pkgs-md ${nixfiles-docs-pkgs} > pages/Packages.md
python3 -m mkdocs build
'';

View File

@@ -28,7 +28,9 @@ final: prev: {
nix-remove-result-links = final.callPackage ./nix-remove-result-links {};
nixfiles-auto-install = final.callPackage ./nixfiles/nixfiles-auto-install.nix {};
nixfiles-docs = final.python3.pkgs.callPackage ./nixfiles-docs {};
nixfiles-docs-generate-pkgs-md = final.callPackage ./nixfiles-docs-generate-pkgs-md {};
nixfiles-docs-generate-options-md = final.callPackage ./nixfiles-docs-generate-options-md {};
nixfiles-docs-pkgs = final.callPackage ./nixfiles-docs-pkgs {};
nixfiles-docs-options = final.callPackage ./nixfiles-docs-options {};
nixfiles-generate-config = final.callPackage ./nixfiles/nixfiles-generate-config.nix {};
nixfiles-generate-backup-secrets = final.callPackage ./nixfiles/nixfiles-generate-backup-secrets.nix {};