feat(gen-docs): add metadata of all scoped packages
All checks were successful
Discord / discord commits (push) Has been skipped

This commit is contained in:
matt1432 2025-02-18 13:48:19 -05:00
parent a42f4091d0
commit fffcce6d29
3 changed files with 59 additions and 10 deletions

View file

@ -0,0 +1,31 @@
attr: selfPath: let
inherit (builtins) currentSystem getFlake mapAttrs removeAttrs replaceStrings;
self = getFlake selfPath;
scopes = import "${selfPath}/${attr}" {description = true;};
trimNewlines = s: replaceStrings ["\n"] [" "] s;
in {
attrs =
mapAttrs (n: v: {
desc = trimNewlines v;
packages = let
scopePkgs = removeAttrs self.${attr}.${currentSystem}.${n} [
"buildFirefoxXpiAddon"
"callPackage"
"newScope"
"override"
"overrideDerivation"
"overrideScope"
"packages"
"recurseForDerivations"
];
in
mapAttrs (_: pkg: {
desc = trimNewlines (pkg.meta.description or "");
homepage = pkg.meta.homepage or "";
})
scopePkgs;
})
scopes;
}

View file

@ -1,4 +1,4 @@
substitute() { substituteDerivs() {
echo '' | pandoc --metadata-file <( echo '' | pandoc --metadata-file <(
nix eval \ nix eval \
--impure \ --impure \
@ -20,13 +20,24 @@ substituteAttrs() {
) -t markdown --template "$FLAKE/apps/gen-docs/templates/$1.md" -o "$FLAKE/$1/README.md" ) -t markdown --template "$FLAKE/apps/gen-docs/templates/$1.md" -o "$FLAKE/$1/README.md"
} }
substitute "appsPackages" "apps" "getPackageMeta" substituteScopes() {
substitute "nixosConfigurations" "configurations" "getConfigMeta" echo '' | pandoc --metadata-file <(
substitute "devShells" "devShells" "getPackageMeta" nix eval \
substitute "packages" "packages" "getPackageMeta" --impure \
--json \
--expr "\"$FLAKE\"" \
--apply "(import \"$FLAKE/apps/gen-docs/getScopesMeta.nix\") \"$1\"" |
jq -r
) -t markdown --template "$FLAKE/apps/gen-docs/templates/$1.md" -o "$FLAKE/$1/README.md"
}
substituteDerivs "appsPackages" "apps" "getPackageMeta"
substituteDerivs "nixosConfigurations" "configurations" "getConfigMeta"
substituteDerivs "devShells" "devShells" "getPackageMeta"
substituteDerivs "packages" "packages" "getPackageMeta"
substituteAttrs "modules" substituteAttrs "modules"
substituteAttrs "homeManagerModules" substituteAttrs "homeManagerModules"
substituteAttrs "overlays" substituteAttrs "overlays"
# TODO: add metadata of all packages substituteScopes "scopedPackages"
substituteAttrs "scopedPackages"

View file

@ -4,8 +4,15 @@ This directory contains every package scopes exposed by this flake.
## List of my package scopes found in `self.scopedPackages` ## List of my package scopes found in `self.scopedPackages`
| Name | Description |
| ---- | ----------- |
$for(attrs/pairs)$ $for(attrs/pairs)$
| `$it.key$` | $it.value.desc/nowrap$ | ### $it.key$
$it.value.desc/nowrap$
| Name | Description | Homepage |
| ---- | ----------- | -------- |
$for(it.value.packages/pairs)$
| `$it.key$` | $it.value.desc/nowrap$ | $it.value.homepage/nowrap$ |
$endfor$
$endfor$ $endfor$