From 7b72ada6355023076dcf282f45fb3de5cf00023e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Tue, 4 May 2021 22:21:51 +0200 Subject: [PATCH] Add script to build images board --- scripts/03_optimize_images.sh | 5 +- scripts/04_build_images_board.sh | 53 +++++++++++++++++++ ...assets_list.sh => 05_build_assets_list.sh} | 0 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100755 scripts/04_build_images_board.sh rename scripts/{04_build_assets_list.sh => 05_build_assets_list.sh} (100%) diff --git a/scripts/03_optimize_images.sh b/scripts/03_optimize_images.sh index 419bf99..57ac987 100755 --- a/scripts/03_optimize_images.sh +++ b/scripts/03_optimize_images.sh @@ -16,11 +16,14 @@ CONVERT_OPTIONS="-alpha off +dither -colors 256 -depth 4" OPTIPNG_OPTIONS="-preserve -quiet -o7" -# delete empty/temp files +echo "Cleaning empty/temp files..." find "${IMAGES_CACHE_FOLDER}" -type f -name "*.png" -empty -exec rm {} \; find "${IMAGES_CACHE_FOLDER}" -type f -name "*.tmp*" -exec rm {} \; find "${IMAGES_CACHE_FOLDER}" -type d -empty -exec rm -rf {} \; +echo "Cleaning existing optimized images..." +find "${IMAGES_OPTIMIZED_FOLDER}" -type f -name "*.png" -exec rm {} \; + IMAGES="$(find "${IMAGES_SELECTED_FOLDER}" -type f -name "*.png" | sort)" while read -r INPUT_FILE; do diff --git a/scripts/04_build_images_board.sh b/scripts/04_build_images_board.sh new file mode 100755 index 0000000..2650396 --- /dev/null +++ b/scripts/04_build_images_board.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +command -v jq >/dev/null 2>&1 || { echo >&2 "I require jq (json parser) but it's not installed. Aborting."; exit 1; } + +CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +BASE_DIR="$(dirname "${CURRENT_DIR}")" + + +IMAGES_CACHE_FOLDER="${CURRENT_DIR}/cache" +IMAGES_OPTIMIZED_FOLDER="${IMAGES_CACHE_FOLDER}/optimized" +OUTPUT_IMAGES_BOARD_FILE="${IMAGES_CACHE_FOLDER}/images_board.html" +touch "${OUTPUT_IMAGES_BOARD_FILE}" + +echo "Cleaning empty/temp files..." +find "${IMAGES_OPTIMIZED_FOLDER}" -type f -name "*.png" -empty -exec rm {} \; +find "${IMAGES_OPTIMIZED_FOLDER}" -type f -name "*.tmp*" -exec rm {} \; +find "${IMAGES_OPTIMIZED_FOLDER}" -type d -empty -exec rm -rf {} \; + +echo "Building images board file..." +FILES="$(find "${IMAGES_OPTIMIZED_FOLDER}" -type f -name "*.png" | sed "s|^${IMAGES_OPTIMIZED_FOLDER}/||g" | sort)" +KEYWORDS="$(echo "${FILES}" | cut -d'/' -f1 | sort | uniq)" + +echo "<!DOCTYPE html>" > "${OUTPUT_IMAGES_BOARD_FILE}" +echo "<html lang=\"en\">" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo " <head>" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo " <style>" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo " table { border-collapse: collapse; border: solid 2px black; width: 100%; }" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo " tr { }" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo " td { border: solid 1px black; }" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo " span { font-weight: bold; }" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo " img { border: solid 1px grey; }" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo " </style>" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo " </head>" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo " <body>" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo " <table>" >> "${OUTPUT_IMAGES_BOARD_FILE}" +while read -r KEYWORD; do + if [[ -n "${KEYWORD}" ]]; then + echo " <tr>" >> "${OUTPUT_IMAGES_BOARD_FILE}" + echo " <td><span>${KEYWORD}</span></td>" >> "${OUTPUT_IMAGES_BOARD_FILE}" + FILES_KEYWORD="$(echo "${FILES}" | grep -e "^${KEYWORD}/")" + echo " <td>" >> "${OUTPUT_IMAGES_BOARD_FILE}" + while read -r FILE; do + echo " <img src=\"optimized/${FILE}\">" >> "${OUTPUT_IMAGES_BOARD_FILE}" + done < <(echo "${FILES_KEYWORD}") + echo " </td>" >> "${OUTPUT_IMAGES_BOARD_FILE}" + echo " </tr>" >> "${OUTPUT_IMAGES_BOARD_FILE}" + fi +done < <(echo "${KEYWORDS}") +echo " </table>" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo " </body>" >> "${OUTPUT_IMAGES_BOARD_FILE}" +echo "</html>" >> "${OUTPUT_IMAGES_BOARD_FILE}" + +echo "done." diff --git a/scripts/04_build_assets_list.sh b/scripts/05_build_assets_list.sh similarity index 100% rename from scripts/04_build_assets_list.sh rename to scripts/05_build_assets_list.sh -- GitLab