60 lines
1.2 KiB
Bash
Executable file
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
|