animation/common.sh

82 lines
1.6 KiB
Bash

#!/bin/bash
if [ -f ".env" ]; then
source .env
fi
if [[ "${DB_FILE}" != "" ]]; then
FULL_DATABASE=`realpath "${DB_FILE}"`
else
FULL_DATABASE=`realpath "./draw.sqlite"`
fi
db () {
sqlite3 "${FULL_DATABASE}" "${1}"
}
dbSetup () {
cat "./sql/setup.sql" | sqlite3 "${FULL_DATABASE}"
}
hashStr () {
echo -n "${1}" | sha256sum | awk '{print $1}'
}
hashFile () {
sha256sum "${1}" | awk '{print $1}'
}
uuid () {
uuidgen | tr "[:upper:]" "[:lower:]"
}
askContinue () {
echo "${1}"
echo "Are you ready to continue? (yes/no)"
read input
if [ "$input" != "n" ] && [ "$input" != "no" ]
then
echo "${2}"
else
exit 1
fi
}
axdraw () {
file=$(realpath "${1}")
echo "FILE:${file}"
if [[ "${PEN}" != "" ]]; then
echo "PEN:${PEN}"
fi
echo "START:$(date '+%s')"
ax "${1}" 2>&1
echo "END:$(date '+%s')"
}
get_frame_axis () {
cat "${1}" | jq -r '.["'${2}'"]["'${3}'"].'${4}
}
get_outer_ratio_frame () {
AX=$(get_frame_axis ${1} ${2} 0 x)
AY=$(get_frame_axis ${1} ${2} 0 y)
BX=$(get_frame_axis ${1} ${2} 1 x)
BY=$(get_frame_axis ${1} ${2} 1 y)
CX=$(get_frame_axis ${1} ${2} 2 x)
CY=$(get_frame_axis ${1} ${2} 2 y)
DX=$(get_frame_axis ${1} ${2} 3 x)
DY=$(get_frame_axis ${1} ${2} 3 y)
ACX=$(echo "${CX}-${AX}" | bc)
DBX=$(echo "${DX}-${BX}" | bc)
ACY=$(echo "${AY}-${CY}" | bc)
DBY=$(echo "${DY}-${BY}" | bc)
echo "scale=4;((${ACX}+${DBX})/2) / ((${ACY}+${DBY})/2)" | bc
}
get_outer_ratio () {
A=$(get_outer_ratio_frame "${1}" 0)
B=$(get_outer_ratio_frame "${1}" 1)
C=$(get_outer_ratio_frame "${1}" 2)
D=$(get_outer_ratio_frame "${1}" 3)
echo "scale=4;(${A}+${B}+${C}+${D})/4" | bc
}