#!/usr/bin/env bash # SPDX-License-Identifier: MIT # This script is executed by GitHub Actions when a PR is merged (i.e. in the `Build PDF` step). set -ex function process_page { pageDir="$1" folder=$(basename "${pageDir}") case $folder in pages.bn | pages.ja | pages.ko | pages.ml | pages.ta | pages.th | pages.zh | pages.zh_TW) ;; pages) python3 render.py "${pageDir}" -c solarized-light ;; *) language="${folder##*.}" python3 render.py "${pageDir}" -c basic -o "tldr-book-${language}.pdf" ;; esac } function main { languageId="$1" if [ -z "$languageId" ]; then changedFiles=$(git diff-tree --no-commit-id --name-only -r "$(git rev-parse HEAD)") changedPageDirs=$(echo "$changedFiles" | awk -F/ '/^(pages[^\/]+|pages)\//{print $1}' | sort -u) if [ -z "$changedPageDirs" ]; then pageDirs=() else mapfile -t pageDirs <<< "$changedPageDirs" fi else case $languageId in all) pageDirs=(../../pages*) ;; bn | ja | ko | ml | ta | th | zh | zh_TW) echo "${languageId} is not supported to build a PDF" ;; en) pageDirs=("pages") ;; *) pageDirs=("pages.${languageId}") ;; esac fi for pageDir in "${pageDirs[@]}"; do process_page "../../${pageDir}" done } ################################### # MAIN ################################### main $1