testers.lycheeLinkCheck: Add online attribute for nix run

(cherry picked from commit c2ebd3ea60)
This commit is contained in:
Robert Hensing 2024-03-24 20:49:31 +01:00 committed by github-actions[bot]
parent bf8c7334f8
commit 8567fac505
2 changed files with 20 additions and 2 deletions

View File

@ -44,7 +44,13 @@ If the `moduleNames` argument is omitted, `hasPkgConfigModules` will use `meta.p
Check that internal hyperlinks are correct, using the [`lychee` package](https://search.nixos.org/packages?show=lychee&type=packages&query=lychee). Check that internal hyperlinks are correct, using the [`lychee` package](https://search.nixos.org/packages?show=lychee&type=packages&query=lychee).
Only an offline check is performed, so that network access is not required. When building the check, only an offline check is performed, so that network access is not required.
If you'd like to run the check with network access, the returned attribute `online` can be invoked with [`nix run`](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-run) ([experimental](https://nixos.org/manual/nix/stable/contributing/experimental-features#xp-feature-nix-command)). For example:
```shell
nix run nixpkgs#lychee.tests.ok.online
```
:::{.example #ex-lycheelinkcheck} :::{.example #ex-lycheelinkcheck}

View File

@ -1,4 +1,4 @@
deps@{ formats, lib, lychee, stdenv }: deps@{ formats, lib, lychee, stdenv, writeShellApplication }:
let let
# See https://nixos.org/manual/nixpkgs/unstable/#tester-lycheeLinkCheck # See https://nixos.org/manual/nixpkgs/unstable/#tester-lycheeLinkCheck
@ -23,6 +23,18 @@ let
} // lib.optionalAttrs (finalAttrs.passthru.remapUrl != null) { } // lib.optionalAttrs (finalAttrs.passthru.remapUrl != null) {
remap = [ "${remapUrl} file://${finalAttrs.site}" ]; remap = [ "${remapUrl} file://${finalAttrs.site}" ];
} // extraConfig; } // extraConfig;
online = writeShellApplication {
name = "run-lychee-online";
runtimeInputs = [ finalAttrs.passthru.lychee ];
# Comment out to run shellcheck:
checkPhase = "";
text = ''
site=${finalAttrs.site}
configFile=${finalAttrs.configFile}
echo Checking links on $site
exec lychee --config $configFile $site "$@"
'';
};
}; };
buildCommand = '' buildCommand = ''
echo Checking internal links on $site echo Checking internal links on $site