From 30c99f8d8d21adab5c084bb69f86f5dff0c7f92c Mon Sep 17 00:00:00 2001 From: L-Nafaryus Date: Fri, 9 Aug 2024 16:56:27 +0500 Subject: [PATCH] packages.bonfire-docs: fix license generation for multiple licenses --- packages/bonfire-docs/default.nix | 9 ++++++--- packages/bonfire-docs/packagesDoc.nix | 14 +++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/packages/bonfire-docs/default.nix b/packages/bonfire-docs/default.nix index c8ace96..c738312 100644 --- a/packages/bonfire-docs/default.nix +++ b/packages/bonfire-docs/default.nix @@ -53,15 +53,18 @@ in dontConfigure = true; doCheck = false; - buildPhase = '' + buildPhase = let + nixosModulesDocsList = map (module_: "ln -s ${module_.commonMarkdown} src/nixosModules/${module_.name}.md") nixosModulesDoc.documentation; + packageDocsList = map (package_: "ln -s ${package_.commonMarkdown} src/packages/${package_.name}.md") packagesDoc.documentation; + in '' runHook preBuild ln -s ${../../README.md} src/README.md - ${lib.concatStringsSep "\n" (map (module_: "ln -s ${module_.commonMarkdown} src/nixosModules/${module_.name}.md") nixosModulesDoc.documentation)} + ${lib.concatStringsSep "\n" nixosModulesDocsList} substituteInPlace src/SUMMARY.md --replace '{{nixosModulesSummary}}' '${lib.concatStringsSep "\n" nixosModulesDoc.summary}' - ${lib.concatStringsSep "\n" (map (package_: "ln -s ${package_.commonMarkdown} src/packages/${package_.name}.md") packagesDoc.documentation)} + ${lib.concatStringsSep "\n" packageDocsList} substituteInPlace src/SUMMARY.md --replace '{{packagesSummary}}' '${lib.concatStringsSep "\n" packagesDoc.summary}' mdbook build diff --git a/packages/bonfire-docs/packagesDoc.nix b/packages/bonfire-docs/packagesDoc.nix index c342d44..9fce5b9 100644 --- a/packages/bonfire-docs/packagesDoc.nix +++ b/packages/bonfire-docs/packagesDoc.nix @@ -46,7 +46,19 @@ license = lib.optionalString (drv.meta ? license) "License: ${ if lib.isList drv.meta.license - then (map (license: "[${drv.meta.license.fullName}](${drv.meta.license.url})") drv.meta.license) + then + lib.concatStringsSep ", " (map (license: let + licenseName = + if license.free + then license.fullName + else if license ? shortName + then license.shortName + else license.fullName; + in + if license ? url + then "[${licenseName}](${license.url})" + else licenseName) + drv.meta.license) else "[${drv.meta.license.fullName}](${drv.meta.license.url})" }";