scripts: Check deps, cleanup, max image size.
This commit is contained in:
parent
a8b9643a99
commit
a6c0161627
3 changed files with 62 additions and 35 deletions
|
|
@ -10,15 +10,14 @@ export PATH
|
||||||
|
|
||||||
__needed_programs='convert
|
__needed_programs='convert
|
||||||
identify
|
identify
|
||||||
fdp
|
|
||||||
bc'
|
bc'
|
||||||
|
|
||||||
__fatal_error='false'
|
export __fatal_error='false'
|
||||||
|
|
||||||
while read -r __program; do
|
while read -r __program; do
|
||||||
if ! which "${__program}" &>/dev/null; then
|
if ! which "${__program}" &>/dev/null; then
|
||||||
echo "Need '${__program}'"
|
echo "Need '${__program}'"
|
||||||
__fatal_error='true'
|
export __fatal_error='true'
|
||||||
fi
|
fi
|
||||||
done <<<"${__needed_programs}"
|
done <<<"${__needed_programs}"
|
||||||
|
|
||||||
|
|
@ -37,13 +36,16 @@ PATH'
|
||||||
########################################
|
########################################
|
||||||
|
|
||||||
__PROCESS_JPEG=true
|
__PROCESS_JPEG=true
|
||||||
__depends__PROCESS_JPEG=(JPEG_RESCALE JPEG_CONVERT_LOSSLESS)
|
__depends__PROCESS_JPEG=(JPEG_RESCALE JPEG_CONVERT_LOSSLESS JPEG_TARGET_SIZE)
|
||||||
# false/auto
|
# false/auto
|
||||||
__JPEG_RESCALE=auto
|
__JPEG_RESCALE=auto
|
||||||
__depends__JPEG_RESCALE=(JPEG_RESCALE_THRESHOLD)
|
__depends__JPEG_RESCALE=(JPEG_RESCALE_THRESHOLD)
|
||||||
# for auto, in KP
|
# for auto, in KP
|
||||||
__JPEG_RESCALE_THRESHOLD=2000
|
__JPEG_RESCALE_THRESHOLD=2000
|
||||||
__JPEG_CONVERT_LOSSLESS=false
|
__JPEG_CONVERT_LOSSLESS=false
|
||||||
|
__JPEG_TARGET_SIZE=true
|
||||||
|
__depends__JPEG_TARGET_SIZE=(JPEG_TARGET_SIZE_BYTES)
|
||||||
|
__JPEG_TARGET_SIZE_BYTES='150000'
|
||||||
|
|
||||||
__PROCESS_PNG=true
|
__PROCESS_PNG=true
|
||||||
__depends__PROCESS_PNG=(PNG_RESCALE PNG_CONVERT_LOSSLESS)
|
__depends__PROCESS_PNG=(PNG_RESCALE PNG_CONVERT_LOSSLESS)
|
||||||
|
|
@ -56,6 +58,7 @@ __PNG_CONVERT_LOSSLESS=true
|
||||||
|
|
||||||
__PROCESS_SCRIPT=false
|
__PROCESS_SCRIPT=false
|
||||||
|
|
||||||
|
__WEBP_METHOD='6'
|
||||||
__WEBP_QUALITY='50'
|
__WEBP_QUALITY='50'
|
||||||
|
|
||||||
__ENVIRONMENT_LIST='PROCESS_JPEG
|
__ENVIRONMENT_LIST='PROCESS_JPEG
|
||||||
|
|
@ -63,10 +66,13 @@ PROCESS_PNG
|
||||||
PROCESS_SCRIPT
|
PROCESS_SCRIPT
|
||||||
JPEG_RESCALE
|
JPEG_RESCALE
|
||||||
JPEG_RESCALE_THRESHOLD
|
JPEG_RESCALE_THRESHOLD
|
||||||
|
JPEG_TARGET_SIZE
|
||||||
|
JPEG_TARGET_SIZE_BYTES
|
||||||
JPEG_CONVERT_LOSSLESS
|
JPEG_CONVERT_LOSSLESS
|
||||||
PNG_RESCALE
|
PNG_RESCALE
|
||||||
PNG_RESCALE_THRESHOLD
|
PNG_RESCALE_THRESHOLD
|
||||||
PNG_CONVERT_LOSSLESS
|
PNG_CONVERT_LOSSLESS
|
||||||
|
WEBP_METHOD
|
||||||
WEBP_QUALITY'
|
WEBP_QUALITY'
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
@ -76,8 +82,8 @@ WEBP_QUALITY'
|
||||||
__fatal_error_handler() {
|
__fatal_error_handler() {
|
||||||
if [ "${__fatal_error}" == 'true' ]; then
|
if [ "${__fatal_error}" == 'true' ]; then
|
||||||
echo 'Fatal Error: Exiting'
|
echo 'Fatal Error: Exiting'
|
||||||
exit
|
exit 1
|
||||||
fi
|
fi || exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
|
|
@ -239,6 +245,11 @@ __unset_unused() {
|
||||||
__process() {
|
__process() {
|
||||||
|
|
||||||
if [ "${PROCESS_SCRIPT}" == 'true' ]; then
|
if [ "${PROCESS_SCRIPT}" == 'true' ]; then
|
||||||
|
|
||||||
|
__process_scripts -r
|
||||||
|
|
||||||
|
__fatal_error_handler
|
||||||
|
|
||||||
__process_scripts
|
__process_scripts
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -289,10 +300,12 @@ __process_generic_image() {
|
||||||
__img_rescale="${1^^}_RESCALE"
|
__img_rescale="${1^^}_RESCALE"
|
||||||
__img_rescale_threshold="${1^^}_RESCALE_THRESHOLD"
|
__img_rescale_threshold="${1^^}_RESCALE_THRESHOLD"
|
||||||
__img_convert_lossless="${1^^}_CONVERT_LOSSLESS"
|
__img_convert_lossless="${1^^}_CONVERT_LOSSLESS"
|
||||||
|
__img_convert_target_size="${1^^}_TARGET_SIZE"
|
||||||
|
__img_convert_target_size_bytes="${1^^}_TARGET_SIZE_BYTES"
|
||||||
|
|
||||||
__print_env
|
__print_env
|
||||||
|
|
||||||
__convert_options=("-auto-orient" "-quality" "${__WEBP_QUALITY}")
|
__convert_options=("-auto-orient" "-quality" "${__WEBP_QUALITY}" "-define" "webp:method=${__WEBP_METHOD}")
|
||||||
|
|
||||||
if [ "${!__img_convert_lossless}" == 'true' ]; then
|
if [ "${!__img_convert_lossless}" == 'true' ]; then
|
||||||
__convert_options+=("-define" "webp:lossless=true")
|
__convert_options+=("-define" "webp:lossless=true")
|
||||||
|
|
@ -304,6 +317,13 @@ __process_generic_image() {
|
||||||
|
|
||||||
convert "${__source_file}" ${__convert_options[@]} "${__target}"
|
convert "${__source_file}" ${__convert_options[@]} "${__target}"
|
||||||
|
|
||||||
|
if [ "${!__img_convert_target_size}" == 'true' ] && [ "$(stat -c '%s' "${__target}")" -gt "${!__img_convert_target_size_bytes}" ] && ! [ "${!__img_convert_lossless}" == 'true' ]; then
|
||||||
|
echo "File too large, resizing"
|
||||||
|
rm "${__target}"
|
||||||
|
__convert_options+=("-define" "webp:target-size=${!__img_convert_target_size_bytes}" "-define" "webp:pass=8")
|
||||||
|
convert "${__source_file}" ${__convert_options[@]} "${__target}"
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
unset FILE_HASH
|
unset FILE_HASH
|
||||||
|
|
@ -312,11 +332,20 @@ __process_generic_image() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# __process_scripts <-r>
|
||||||
|
########################################
|
||||||
|
#
|
||||||
|
# Process
|
||||||
|
# Call this to process scripts, or call
|
||||||
|
# with '-r' to check required programs
|
||||||
|
#
|
||||||
|
########################################
|
||||||
__process_scripts() {
|
__process_scripts() {
|
||||||
|
|
||||||
__unset_unused SCRIPT
|
__unset_unused SCRIPT
|
||||||
|
|
||||||
find './src/' -type f \( -iname \*.sh \) | while read -r __source_file; do
|
while read -r __source_file; do
|
||||||
|
|
||||||
export FILE_HASH="$(
|
export FILE_HASH="$(
|
||||||
{
|
{
|
||||||
|
|
@ -330,17 +359,36 @@ __process_scripts() {
|
||||||
|
|
||||||
if ! __check_file "${__source_file}" "$("${__source_file}" -t)"; then
|
if ! __check_file "${__source_file}" "$("${__source_file}" -t)"; then
|
||||||
|
|
||||||
echo "Running: ${__source_file}"
|
if [ "${1}" == '-r' ]; then
|
||||||
|
|
||||||
echo "$(__hash_env)" >"$(__get_hash_file "${__source_file}")"
|
while read -r __program; do
|
||||||
|
if ! which "${__program}" &>/dev/null; then
|
||||||
|
echo "$(pwd)${__source_file:1} needs '${__program}'"
|
||||||
|
export __fatal_error='true'
|
||||||
|
fi
|
||||||
|
done < <("${__source_file}" -r)
|
||||||
|
|
||||||
"${__source_file}"
|
else
|
||||||
|
|
||||||
|
echo "Running: ${__source_file}"
|
||||||
|
echo "$(__hash_env)" >"$(__get_hash_file "${__source_file}")"
|
||||||
|
|
||||||
|
__target_files="$("${__source_file}" -t)"
|
||||||
|
|
||||||
|
"${__source_file}"
|
||||||
|
|
||||||
|
while read -r __file; do
|
||||||
|
if ! [ -a "${__file}" ]; then
|
||||||
|
echo "Warning: $(pwd)${__source_file:1} failed to create ${__file}"
|
||||||
|
fi
|
||||||
|
done <<<"${__target_files}"
|
||||||
|
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
unset FILE_HASH
|
unset FILE_HASH
|
||||||
|
|
||||||
done
|
done < <(find './src/' -type f \( -iname \*.sh \))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -416,7 +464,7 @@ ${__targets}"
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
__fatal_error_handler
|
__fatal_error_handler || exit 1
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit ee7fed1bdb42d9bb1b54df2031b6879117b70e19
|
Subproject commit 8e511854538e10067f9d42cd5308b6910abe0f99
|
||||||
21
update.sh
21
update.sh
|
|
@ -1,21 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
git pull --recurse-submodules
|
|
||||||
|
|
||||||
if [ -d './static/images/reduced/' ]; then
|
|
||||||
rm -r './static/images/reduced/'
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d './static/images/generated/' ]; then
|
|
||||||
rm -r './static/images/generated/'
|
|
||||||
fi
|
|
||||||
|
|
||||||
find src -iname '*.sh' | while read -r __file; do
|
|
||||||
time ./${__file} "$(dirname "${__file}")/"
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -r public
|
|
||||||
|
|
||||||
HUGO_ENV=production hugo --gc --minify
|
|
||||||
|
|
||||||
exit
|
|
||||||
Loading…
Add table
Reference in a new issue