mirror of
https://github.com/draussenfunker/draussenfunker.github.io.git
synced 2026-06-08 02:53:55 +00:00
Fix E2BIG error in optimize.sh caused by too many arguments
Instead of passing the full list of images once, use smaller batches of images paths passed to sharp-cli.
This commit is contained in:
parent
af73e6bcc7
commit
ff78b84e4d
1 changed files with 26 additions and 1 deletions
27
optimize.sh
27
optimize.sh
|
|
@ -1,3 +1,28 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
echo "running image optimization"
|
echo "running image optimization"
|
||||||
npx --yes sharp-cli resize 1200 --withoutEnlargement true --optimise true --progressive true --withMetadata false --failOn none --input $(find ./docs \( -name cache -prune \) -o -name '*' -type f -exec file {} \; | awk -F: '{ if ($2 ~/[Ii]mage|EPS/) print $1}') --output "{dir}/{base}"
|
|
||||||
|
ROOT_DIR="./docs"
|
||||||
|
BATCH_SIZE=73
|
||||||
|
|
||||||
|
# Build a list of image files (skip "cache" directories)
|
||||||
|
file_list=$(mktemp)
|
||||||
|
find "$ROOT_DIR" \( -name cache -prune \) -o -type f -exec file {} \; \
|
||||||
|
| awk -F: '{ if ($2 ~ /[Ii]mage|EPS/) print $1 }' > "$file_list"
|
||||||
|
|
||||||
|
# Process in batches using xargs; each invocation gets up to $BATCH_SIZE files
|
||||||
|
sparp_cli_cmd() {
|
||||||
|
local batch_args=("$@")
|
||||||
|
npx --yes sharp-cli resize 1200 \
|
||||||
|
--withoutEnlargement true --optimise true --progressive true --withMetadata false --failOn none \
|
||||||
|
--input "${batch_args[@]}" --output "{dir}/{base}"
|
||||||
|
}
|
||||||
|
|
||||||
|
export -f sparp_cli_cmd
|
||||||
|
|
||||||
|
# Use xargs to call a shell wrapper which forwards the args into xargs_cmd
|
||||||
|
# The "_" is the placeholder $0 so filenames become $1..$N inside the wrapper
|
||||||
|
xargs -r -n "$BATCH_SIZE" bash -c 'sparp_cli_cmd "$@"' _ < "$file_list"
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
rm -f "$file_list"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue