mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
Rollup merge of #110565 - weihanglo:linkchecker, r=ehuss
linkchecker: running from a directory separate from the book Since rust-lang/cargo#11851, Cargo became a Cargo workspace of itself. However, since `src/tools/linkchecker` cannot run inside a workspace, Cargo needs a workaround that excludes `src/doc` from workspace member probing. To remove this hack, this PR adds a new optional argument `--path` for `linkchecker.sh`. With this new argument, `linkchecker.sh` can be run from a directory separate from the book. This also benefits other projects using linkchecker, as they can run it under target directory or any other directory, reducing leftover.
This commit is contained in:
commit
9f39295517
@ -16,15 +16,13 @@
|
||||
#
|
||||
# --all Check all books. This can help make sure you don't break links
|
||||
# from other books into your book.
|
||||
#
|
||||
# --path <book-path>
|
||||
# Path to the root directory for the book. Default to the current
|
||||
# working directory if omitted.
|
||||
|
||||
set -e
|
||||
|
||||
if [ ! -f book.toml ] && [ ! -f src/SUMMARY.md ]
|
||||
then
|
||||
echo "Run command in root directory of the book."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
html_dir="$(rustc +nightly --print sysroot)/share/doc/rust/html"
|
||||
|
||||
if [ ! -d "$html_dir" ]
|
||||
@ -38,6 +36,8 @@ fi
|
||||
export MDBOOK_OUTPUT__HTML__INPUT_404=""
|
||||
|
||||
book_name=""
|
||||
# Default to the current directory
|
||||
book_path="."
|
||||
# Iterative will avoid cleaning up, so you can quickly run it repeatedly.
|
||||
iterative=0
|
||||
# If "1", test all books, else only this book.
|
||||
@ -52,6 +52,10 @@ do
|
||||
--all)
|
||||
all_books=1
|
||||
;;
|
||||
--path)
|
||||
book_path="${2:-.}"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
if [ -n "$book_name" ]
|
||||
then
|
||||
@ -70,6 +74,12 @@ then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$book_path/book.toml" ] && [ ! -f "$book_path/src/SUMMARY.md" ]
|
||||
then
|
||||
echo "Run command in root directory of the book or provide a path to the book"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "$html_dir/$book_name" ]
|
||||
then
|
||||
echo "book name \"$book_name\" not found in sysroot \"$html_dir\""
|
||||
@ -93,11 +103,11 @@ then
|
||||
fi
|
||||
|
||||
echo "Building book \"$book_name\"..."
|
||||
mdbook build
|
||||
mdbook build "$book_path"
|
||||
|
||||
cp -R "$html_dir" linkcheck
|
||||
rm -rf "linkcheck/$book_name"
|
||||
cp -R book "linkcheck/$book_name"
|
||||
cp -R "$book_path/book" "linkcheck/$book_name"
|
||||
|
||||
if [ "$all_books" = "1" ]
|
||||
then
|
||||
|
Loading…
Reference in New Issue
Block a user