mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-03-06 08:49:17 +02:00
38 lines
1.4 KiB
Bash
38 lines
1.4 KiB
Bash
|
#!/usr/bin/bash
|
||
|
set -Eeuo pipefail
|
||
|
|
||
|
# Usage: build.sh <book-lang> <dest-dir>
|
||
|
#
|
||
|
# Build the course as of the date specified specified in the
|
||
|
# POT-Creation-Date header of po/$book_lang.po. The output can be
|
||
|
# found in $dest_dir.
|
||
|
#
|
||
|
# The src/ and third_party/ directories are left in a dirty state so
|
||
|
# you can run `mdbook test` and other commands afterwards.
|
||
|
|
||
|
book_lang=${1:?"Usage: $0 <book-lang> <dest-dir>"}
|
||
|
dest_dir=${2:?"Usage: $0 <book-lang> <dest-dir>"}
|
||
|
|
||
|
if [ "$book_lang" = "en" ]; then
|
||
|
echo "::group::Building English course"
|
||
|
else
|
||
|
pot_creation_date=$(grep --max-count 1 '^"POT-Creation-Date:' "po/$book_lang.po" | sed -E 's/".*: (.*)\\n"/\1/')
|
||
|
pot_creation_date=${pot_creation_date:-now}
|
||
|
echo "::group::Building $book_lang translation as of $pot_creation_date"
|
||
|
|
||
|
# Back-date the sources to POT-Creation-Date. The content lives in two
|
||
|
# directories:
|
||
|
rm -r src/ third_party/
|
||
|
git restore --source "$(git rev-list -n 1 --before "$pot_creation_date" @)" src/ third_party/
|
||
|
# Set language and adjust site URL. Clear the redirects since they are
|
||
|
# in sync with the source files, not the translation.
|
||
|
export MDBOOK_BOOK__LANGUAGE=$book_lang
|
||
|
export MDBOOK_OUTPUT__HTML__SITE_URL=/comprehensive-rust/$book_lang/
|
||
|
export MDBOOK_OUTPUT__HTML__REDIRECT='{}'
|
||
|
fi
|
||
|
|
||
|
mdbook build -d "$dest_dir"
|
||
|
(cd "$dest_dir/exerciser" && zip --recurse-paths ../html/comprehensive-rust-exercises.zip comprehensive-rust-exercises/)
|
||
|
|
||
|
echo "::endgroup::"
|