#!/usr/bin/env zsh -i set -e size="1440x1920" # Kobo Forma #size="768x1024" # Amazon Kindle Paperwhite vertical_size="$(cut -dx -f2 <<< $size)x$(cut -dx -f1 <<< $size)" infile="$(realpath $1)" outfile="$(realpath $2)" tmpdir=$(mktemp -d) function cleanup { rm -rf "$tmpdir" } trap cleanup EXIT INT SIGTERM cd "$tmpdir" unzip "$infile" renumber 4 **/*.??? length=$(ls -1 **/*.??? | wc -l) position=0 for image in **/*.???; do width=$(identify -format "%W" "$image") height=$(identify -format "%H" "$image") if (($width > $height)); then mogrify -resize "$vertical_size" -rotate 270 "$image" else mogrify -resize "$size" "$image" fi position=$(($position + 1)) echo -ne "$(printf '%3s' $((100 * $position / $length))) % "$(printf "%0*d" "$((72 * $position / $length))" 0 | tr '0' '#')'\r' done echo zip "$outfile" **/*.??? cd -