#!/bin/bash -r

# Standard converter script for Gopher menu generated by currencyconv.sh
# Supplied with currencyconv.sh by The Free Thinker, 2020.
# V. 1, R. 1
#
# Reads CGI $QUERY_STRING environment variable in format:
#  [AMOUNT][IN CURRENCY CODE]
# or:
#  [AMOUNT] [IN CURRENCY CODE]
#
#Note: Runs restricted for security (bash -r parameter)

# Set this to the currency menu gophermap directory as shown in the Gopher path:
CONVROOT="/~freet/currconv"

# Location of the file where Units currency data is (uses default if not set):
export UNITSFILE="/home/freet/goph/currconv/currency.units"

CUSTOMCURR="`cat ../customcurr.csv`"
CONVAMOUNT="`expr "$QUERY_STRING" : '\([0-9]\+\|[0-9]*\.[0-9]\+\)[[:blank:]a-zA-Z]*'`"
CONVINCODE="`expr "$QUERY_STRING" : '[0-9.]\+[[:blank:]]*\([a-zA-Z]\{3\}\)' | tr '[:lower:]' '[:upper:]'`"
[ -z "$CONVOUTCODE" ] && CONVOUTCODE="`expr "$PWD" : '.*/\([A-Z]\{3\}\)$'`"

CUSTOMCODE="`expr \"$CUSTOMCURR\" : \"$CONVINCODE,.*,\([a-z]*\)\"`"
[ "$CUSTOMCODE" ] && CONVINCODE=$CUSTOMCODE

CUSTOMCODE="`expr \"$CUSTOMCURR\" : \"$CONVOUTCODE,.*,\([a-z]*\)\"`"
[ "$CUSTOMCODE" ] && CONVOUTCODE=$CUSTOMCODE

if [ "$CONVINCODE" ] && [ "$CONVAMOUNT" ]
then
 cat head.txt
 echo -n "$CONVAMOUNT$CONVINCODE is:          "
 units -t -o %.4f  "$CONVAMOUNT$CONVINCODE" "$CONVOUTCODE"
 [ $? -ne 0 ] && echo -e "Invalid input amount/currency.\nUsage is: [Amount][3-Letter Currency Code]"
 echo -e "\n1More conversions where that came from...\t$CONVROOT"
else
 echo -e " No idea what you're asking for there.\n\
 What I'm looking for is: [Amount][3-Letter Currency Code]\n\
 eg. 28.61GBP\n\n\
1Give it another try\t$CONVROOT"
fi
