Supondo que você esteja adicionando isso a um Makefile
(o que requer que todos $
estejam $$
) e os arquivos PNG / JPG estejam em um diretório chamado ./remote-assets
, você pode usar o seguinte para produzir uma versão WebP do arquivo JPG / PNG.
# PNG
find ./remote-assets -type f -name '*.png' | xargs -P $$(nproc) -I {} bash -c 'if [ ! -f "$${1%.png}.webp" ]; then cwebp -mt -q 75 $$1 -o "$${1%.png}.webp"; fi;' _ {} ;
# JPG
find ./remote-assets -type f -name '*.jpg' | xargs -P $$(nproc) -I {} bash -c 'if [ ! -f "$${1%.jpg}.webp" ]; then cwebp -mt -q 75 $$1 -o "$${1%.jpg}.webp"; fi;' _ {} ;
Isso vai:
- Encontre todos os
.png
/.jpg
arquivos no diretório (recursivamente) - Passe a lista de correspondências para
xargs
- Determine o número de núcleos de CPU que você tem
- Gire essa quantidade de threads para paralelizar o trabalho
- Só execute se a
.webp
versão ainda não existir - Use o Bash para ligar
cwebp
- Produza o arquivo com o mesmo nome, mas com uma
.webp
extensão de arquivo