scripts/cbz2ebook.sh

38 lines
872 B
Bash
Executable file

#!/bin/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 -