#!/bin/bash set -e PROJ_ROOT=${PROJ_ROOT:-..} DATA_DIR=${PROJ_ROOT}/data WWW_DIR=${DATA_DIR}/w # Build data directory printf "\033[33mBuilding data directory:\033[0m ${DATA_DIR}\n" mkdir -p ${DATA_DIR} # Build frontend (Not sure if I want to do this) WWWFRONT_DIR=${WWWFRONT:-${PROJ_ROOT}/frontend} #printf "\033[33mBuilding frontend:\033[0m ${WWWFRONT_DIR}\n" #(cd ${WWWFRONT_DIR} && npm run release) # Copying static web files printf "\033[33mCopying files to static web directory:\033[0m ${WWW_DIR}\n" rm ${WWW_DIR} -Rf mkdir -p ${WWW_DIR} cp -Lr ${WWWFRONT_DIR}/dist/* ${WWW_DIR} # Create gzip compressed versions of www files GZ_MIN_SIZE=${GZ_MIN_SIZE:-"1k"} GZ_MIN_RATIO=${GZ_MIN_RATIO:-30} printf "\033[33mCompressing large files:\033[0m \ (size > ${GZ_MIN_SIZE}) by at least ${GZ_MIN_RATIO}%%\n" find ${WWW_DIR} -type f -size +${GZ_MIN_SIZE} | while read file; do real_size=$(cat "${file}" | wc -c) gz_size=$(gzip "${file}" -c | wc -c) ratio=$(echo "scale=2; 100 - ${gz_size} * 100 / ${real_size}" | bc) if [ `echo "${ratio} > ${GZ_MIN_RATIO}" | bc` -ge 1 ]; then gzip -n -k -9 "${file}" printf " \033[37m${file}\033[0m ${real_size} bytes ==> ${gz_size} bytes (\033[32m${ratio}%%\033[0m)\n" else printf " \033[37m${file}\033[0m ${real_size} bytes ==> ${gz_size} bytes (\033[31m${ratio}%%\033[0m) Not compressing!\n" fi done # Finish up printf "\n\n\033[32mFinished!\033[0m\n" DATA_SUM=$(find ${DATA_DIR} -type f -exec sha1sum {} \; | sort -k 2 | sha1sum) tree --du -h "${DATA_DIR}" echo "Data checksum: ${DATA_SUM}" echo "Apparent size: $(du -sbh ${DATA_DIR})"