#!/usr/bin/env fish for filename in $argv switch $filename case '*.webp' set -l basename (basename $filename) set -l dirname (dirname $filename) set -l rootname (echo $basename | string split -f 1 -m 1 -r .) set targetname "$dirname/$rootname.png" set attempt 0 while test $attempt -le 200 if test -f $targetname set attempt (math $attempt + 1) set targetname "$dirname/$rootname-$attempt.png" continue end convert "$filename" "$targetname" break end case '*.webm' set -l basename (basename $filename) set -l dirname (dirname $filename) set -l rootname (echo $basename | string split -f 1 -m 1 -r .) set -l targetname "$dirname/$rootname.mp4" ffmpeg -i $filename -c:v libx264 -crf 24 $targetname case '*' echo "Neither webp nor webm, skipping." end end