pkgs/nixfiles-docs-generate-pkgs-md: Automatically generate package documentation
This commit is contained in:
3
docs/pages/Packages.md
Normal file
3
docs/pages/Packages.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Packages
|
||||
|
||||
This page is generated on build time.
|
||||
8
pkgs/nixfiles-docs-generate-pkgs-md/default.nix
Normal file
8
pkgs/nixfiles-docs-generate-pkgs-md/default.nix
Normal 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;
|
||||
}
|
||||
30
pkgs/nixfiles-docs-generate-pkgs-md/nixfiles-docs-generate-pkgs-md.py
Executable file
30
pkgs/nixfiles-docs-generate-pkgs-md/nixfiles-docs-generate-pkgs-md.py
Executable 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("")
|
||||
19
pkgs/nixfiles-docs-pkgs/default.nix
Normal file
19
pkgs/nixfiles-docs-pkgs/default.nix
Normal 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
|
||||
)
|
||||
@@ -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
|
||||
'';
|
||||
|
||||
|
||||
@@ -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 {};
|
||||
|
||||
Reference in New Issue
Block a user