pizzacalc/pizza.sh
2023-04-25 05:05:33 -07:00

60 lines
1.2 KiB
Bash
Executable file

#!/usr/bin/env bash
FSI=2.12206590789 # grams of Flour per Square Inch of pan
function pizzahelp {
echo "Pizza Calculator: The pizza script you never asked for"
echo
echo "Usage: ./pizza.sh [-h] [-f] [<flour weight>g|<pan diameter>(in|inch|\")]"
echo "Options:"
echo " -h Print this help"
echo " -f <N> Set flour per square inch"
echo
}
while getopts ":hf:" option; do
case $option in
h)
pizzahelp
exit;;
f)
FSI=$OPTARG
shift 2;;
\?)
echo "Error: Invalid option"
exit;;
esac
done
function panarea {
AREA=$(echo "3.1415926535*($DIAM/2)^2" | bc)
SIZE=$(echo $AREA*$FSI | bc)
calcratio
}
function calcratio {
[ -n SIZE ] || read -p "Grams of flour: " SIZE
LABEL=0
for RATIO in $(grep 'ratios' -A 8 pizza.txt | sed /\\[*.\\]/d | cut -f 2); do \
((LABEL++))
grep 'ratios' -A 8 pizza.txt | sed /\\[*.\\]/d | cut -f 1 | sed $LABEL'!d'
echo $RATIO*$SIZE | bc
done
}
case $1 in
*g)
SIZE=$(echo $1 | sed s/g//g)
calcratio;;
*\")
DIAM=$(echo $1 | sed s/\"//g)
panarea;;
*inch)
DIAM=$(echo $1 | sed s/inch//g)
panarea;;
*in)
DIAM=$(echo $1 | sed s/in//g)
panarea;;
*)
read -p "Diameter of pan (in inches): " DIAM
panarea;;
esac