uudoc: print tldr.zip warning only once per process #10039
+25
−26
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Move the tldr.zip missing warning from runtime (
uudoc.rs) to compile time (build.rs). This ensures the warning is printed only once during the build, instead of 100+ times whenmakecallsuudocseparately for each utility.The Problem
From issue #9940:
The previous
OnceLockapproach did not work becausemake install-manpagesinvokesuudoc manpage <utility>as a separate process for each utility. Since each process has its own memory,OnceLockresets every time.The Fix
Check for
docs/tldr.zipinbuild.rsand emit acargo:warning=message at compile time:This prints the warning exactly once when
cargo build --features uudocruns, not during the 100+ runtime invocations.Testing
Build prints the warning once:
Running
uudoc manpagefor multiple utilities (simulatingmake install-manpages) prints no warnings:Fixes #9940