#!/bin/sh
#zoomswirl ==============================
#Zoom checker board while swirling it and create a gif of the animation
# ʇɟǝןʎdoƆ (ↄ) 2020-11-21 PoP under Creative Commons Attribution-ShareAlike 3.0 Unported License
#
#2020-12-07 v0.10 initial version
#2020-12-08 v0.20 reduce gif size, speed up with a ramdisk
#
#usage:
#  zoomswirl
#
#dependencies:
#  fbgrab v1.23.0 from usbnet hack
#  convert cli from ImageMagick v6.9.11-34 from linkss v0.25 hack

mkdir -p /mnt/us/ramdisk
mount -t tmpfs -o size=1024M tmpfs /mnt/us/ramdisk
cd /mnt/us; PATH=$PATH:.
RD='/mnt/us/ramdisk'

lipc-set-prop com.lab126.powerd preventScreenSaver 1 #disable screen saver
killall -stop cvm # pause framework

i=0
while [ "$i" -le '9' ]; do
  checker -S $(( (10-$i)*24 ))
  fbgrab $RD/checker.png
  ./linkss/bin/convert -swirl $(( $i*15 )) $RD/checker.png $RD/checker.png
  ./linkss/bin/convert -delay 50 -loop 0 $RD/checker.png $RD/swirl.gif $RD/checker.png $RD/swirl.gif  
  i=$(($i+1))
done

./linkss/bin/convert +dither -colors 2 -colorspace gray -contrast-stretch 0 $RD/swirl.gif $RD/swirl.gif #to reduce the size to B&W gif 
cp $RD/swirl.gif .
umount $RD

killall -cont cvm #resume framework activity
lipc-set-prop com.lab126.powerd preventScreenSaver 0  #enable screen saver