PNG / JPG → WebP

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:

  1. Encontre todos os .png/ .jpgarquivos no diretório (recursivamente)
  2. Passe a lista de correspondências para xargs
  3. Determine o número de núcleos de CPU que você tem
  4. Gire essa quantidade de threads para paralelizar o trabalho
  5. Só execute se a .webpversão ainda não existir
  6. Use o Bash para ligar cwebp
  7. Produza o arquivo com o mesmo nome, mas com uma .webpextensão de arquivo