12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #!/usr/bin/env bash
- # SPDX-License-Identifier: MIT
- # This script is executed by GitHub Actions for every successful push (on any branch, PR or not).
- set -ex
- function initialize {
- if [[ -z $TLDRHOME ]]; then
- export TLDRHOME=${GITHUB_WORKSPACE:-$(pwd)}
- fi
- if [[ -z $TLDR_LANG_ARCHIVES_DIRECTORY ]]; then
- export TLDR_LANG_ARCHIVES_DIRECTORY="${GITHUB_WORKSPACE:-$(pwd)}/language_archives"
- fi
- export TLDR_ARCHIVE="tldr.zip"
- DIFF="$(git diff --name-only @^ @ | cut -d'/' -f1)"
- export DIFF
- }
- function build_index {
- if ! grep -xq "pages.*" <<< "$DIFF"; then
- return
- fi
- npm run build-index
- echo "Pages index successfully built."
- }
- function build_archive {
- if ! grep -xq "pages.*" <<< "$DIFF"; then
- return
- fi
- rm -f "$TLDR_ARCHIVE"
- cd "$TLDRHOME/"
- zip -q -r "$TLDR_ARCHIVE" pages* LICENSE.md index.json
- echo "Pages archive successfully built."
- }
- function build_translation_archives {
- local source_directory target_directory lang archive_name
- source_directory="$TLDRHOME"
- target_directory="$TLDR_LANG_ARCHIVES_DIRECTORY"
- mkdir -p "$target_directory"
- rm -f "$target_directory"/*
- for lang_dir in "$source_directory"/pages*; do
- lang=$(basename "$lang_dir")
- # Skip symlinks (pages.en), files outside pages* and directories that haven't been changed.
- if [[ ! -d $lang_dir || -h $lang_dir ]] || ! grep -Fxq "$lang" <<< "$DIFF"; then
- continue
- fi
- archive_name="tldr-$lang.zip"
- # Create the zip archive
- cd "$lang_dir"
- zip -q -r "$target_directory/$archive_name" .
- zip -q -j "$target_directory/$archive_name" "$source_directory/LICENSE.md"
- echo "Pages archive of $archive_name successfully created."
- done
- cd "$target_directory"
- if grep -Fxq pages <<< "$DIFF"; then
- cp tldr-pages.zip tldr-pages.en.zip
- fi
- }
- ###################################
- # MAIN
- ###################################
- initialize
- build_index
- build_archive
- build_translation_archives
|