Improve compress script #23

Merged
jonny merged 2 commits from improve_compress_script into develop 2025-01-25 12:22:00 +01:00
16 changed files with 31 additions and 3 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
public/assets/js/app.js.zst Normal file

Binary file not shown.

Binary file not shown.

View file

@ -1,13 +1,41 @@
#!/usr/bin/env zsh #!/usr/bin/env zsh
if ! type fd &> /dev/null; then if ! (( $+commands[fd] )) &> /dev/null; then
echo "fd not installed" echo "fd not installed"
exit 1 exit 1
fi fi
if ! type brotli &> /dev/null; then if ! (( $+commands[brotli] )) &> /dev/null; then
echo "brotli not installed" echo "brotli not installed"
exit 1 exit 1
fi fi
fd -e css -e js --search-path ./public/assets --type f -x brotli --force --best --output={}.br {} if ! (( $+commands[zstd] )) &> /dev/null; then
echo "zstd not installed"
exit 1
fi
# Make .br files
fd --extension css --extension js --search-path ./public/assets --type f --exec brotli --force --best --output={}.br {}
# Make .zst files
fd --extension css --extension js --search-path ./public/assets --type f --exec zstd --quiet --force --ultra -22 --exclude-compressed {} -o {}.zst
# Remove files that actually got bigger!
fd --extension br --extension zst --search-path ./public/assets --type f --exec sh -c '
for file; do
src="${file%.br}"
src="${src%.zst}"
if [ -f "$src" ]; then
# Get file sizes using stat with cross-platform compatibility
if [ "$(uname)" = "Darwin" ]; then
file_size=$(stat -f%z "$file")
src_size=$(stat -f%z "$src")
else
file_size=$(stat -c%s "$file")
src_size=$(stat -c%s "$src")
fi
# Compare sizes and rm compressed file if larger than the source
[ "$file_size" -ge "$src_size" ] && rm "$file"
fi
done
' _ {}