diff --git a/README.md b/README.md index 627e760..70532ea 100644 --- a/README.md +++ b/README.md @@ -7,10 +7,10 @@ Original sources are downloaded from https://landing.google.com/sre/books # Books ## Site Reliability Engineering -sre-book +site reliability engineering cover ## The Site Reliability Workbook -srw-book +the site reliability workbook cover # Build @@ -20,8 +20,13 @@ Requirements: - Docker +You can generate either of books using `BOOK_SLUG` variable. + +Available values for `BOOK_SLUG`: + - `sre_book` Site Reliability Engineering. + ``` -$ docker run --rm --volume "$(pwd):/output" captn3m0/google-sre-ebook:latest +$ docker run --rm --volume "$(pwd):/output" captn3m0/google-sre-ebook:latest -e BOOK_SLUG='sre_book' ``` - You should see the final EPUB/MOBI/PDF files in the `output` directory after the above runs. @@ -32,7 +37,7 @@ $ docker run --rm --volume "$(pwd):/output" captn3m0/google-sre-ebook:latest ``` $ mkdir /tmp/sreoutput $ chcon -Rt svirt_sandbox_file_t /tmp/sreoutput -$ docker run --rm --volume "/tmp/sreoutput:/output" captn3m0/google-sre-ebook:latest +$ docker run --rm --volume "/tmp/sreoutput:/output" captn3m0/google-sre-ebook:latest -e BOOK_SLUG='sre_book' ``` The build for the above Docker image can be audited at . @@ -52,7 +57,7 @@ Requirements: # Known Issues -- metadata.xml is not complete. There are just too many authors +- metadata is not complete. There are just too many authors - Foreword/Preface is not part of the index # LICENSE diff --git a/books.sh b/books.sh new file mode 100644 index 0000000..f09d220 --- /dev/null +++ b/books.sh @@ -0,0 +1,15 @@ +# Google SRE Books. +declare -A BOOKS +BOOKS=( + + # Site Reliability Engineering + ["SRE_BOOK"]=$( + echo ' + BOOK_NAME=sre-book + BOOK_NAME_FULL=Site Reliability Engineering + BOOK_FILE=google-sre-book + BOOK_TOC_URL=https://landing.google.com/sre/sre-book/toc/index.html + ' + ) + +) diff --git a/bootstrap.sh b/bootstrap.sh index 2aa6b78..f27bab8 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -1,14 +1,15 @@ #!/bin/bash set -euo pipefail + +# Get book details. +source books.sh +export ${BOOKS[${BOOK_SLUG^^}]} + +# Common vars. +IMGS_DOMAIN="lh3.googleusercontent.com" IFS=$'\n\t' -# Vars. -export BOOK_NAME="sre-book" -export BOOK_NAME_FULL="Site Reliability Engineering" -BOOK_FILE="google-${BOOK_NAME}" -TOC_URL="https://landing.google.com/sre/${BOOK_NAME}/toc/index.html" -IMGS_DOMAIN="lh3.googleusercontent.com" - +# # Make sure that links are relative \ # # Remove the /sre/ directories # Save stuff in html/ directory @@ -27,7 +28,7 @@ wget \ --mirror \ --no-verbose \ --recursive \ - --domains=${IMGS_DOMAIN},landing.google.com ${TOC_URL} + --domains=${IMGS_DOMAIN},landing.google.com ${BOOK_TOC_URL} # MODE=${1:-} @@ -36,6 +37,7 @@ if [ "$MODE" != "docker" ];then bundle install fi +# # Add extension to files. # That because `pandoc` cannot generate the right `mime type` without the extension. # https://github.com/captn3m0/google-sre-ebook/issues/19 @@ -52,19 +54,25 @@ for FILE_NAME_FULL in ${IMGS_FILES}; do done +# +# Generate epub from html. bundle exec ruby generate.rb pushd html/landing.google.com/sre/${BOOK_NAME}/toc -pandoc --from=html --to=epub \ - --output=../../../../../${BOOK_FILE}.epub \ - --epub-metadata=../../../../../${BOOK_NAME}.xml \ - --epub-cover-image=../../../../../${BOOK_NAME}.jpg \ +pandoc --from=html --to=epub \ + --output=../../../../../${BOOK_FILE}.epub \ + --epub-metadata=../../../../../metadata/${BOOK_NAME}.xml \ + --epub-cover-image=../../../../../cover/${BOOK_NAME}.jpg \ complete.html popd +# +# Generate other format from epub. for EXTENSION in mobi pdf; do ebook-convert ${BOOK_FILE}.epub ${BOOK_FILE}.${EXTENSION} done +# +# If it works inside docker. if [ "$1"=="docker" ]; then chown -v $(id -u):$(id -g) ${BOOK_FILE}.* mv -f ${BOOK_FILE}.* /output diff --git a/sre-book.jpg b/cover/sre-book.jpg similarity index 100% rename from sre-book.jpg rename to cover/sre-book.jpg diff --git a/workbook.jpg b/cover/workbook.jpg similarity index 100% rename from workbook.jpg rename to cover/workbook.jpg diff --git a/sre-book.xml b/metadata/sre-book.xml similarity index 100% rename from sre-book.xml rename to metadata/sre-book.xml