diff --git a/scripts/pdf/build-pdf.sh b/scripts/pdf/build-pdf.sh old mode 100644 new mode 100755 index 09df4d21a..34d6a151c --- a/scripts/pdf/build-pdf.sh +++ b/scripts/pdf/build-pdf.sh @@ -7,7 +7,6 @@ set -ex function process_page { pageDir="$1" folder=$(basename "${pageDir}") - language="${folder##*.}" case $folder in pages.bn | pages.ja | pages.ko | pages.ml | pages.ta | pages.th | pages.zh | pages.zh_TW) ;; @@ -15,14 +14,32 @@ function process_page { python3 render.py "${pageDir}" -c solarized-light ;; *) + language="${folder##*.}" python3 render.py "${pageDir}" -c basic -o "tldr-book-${language}.pdf" ;; esac } function main { - for pageDir in ../../pages*; do - process_page "${pageDir}" + type="$1" + case $type in + "all") + pageDirs=(../../pages*) + ;; + *) + 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 + ;; + esac + + for pageDir in "${pageDirs[@]}"; do + process_page "../../${pageDir}" done } @@ -30,4 +47,4 @@ function main { # MAIN ################################### -main +main $1