Simon Bruder
ecd7808dd1
Older scripts (that now have no real purpose) or ones that require packages that are not in nixpkgs are not updated. They should either be removed or fixed at a later date.
38 lines
880 B
Bash
Executable file
38 lines
880 B
Bash
Executable file
#!/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 -
|