Sipgate-CLI/faxreport.sh
2022-03-22 10:30:29 +01:00

76 lines
1.6 KiB
Bash
Executable file

#! /bin/bash
# depends on bash >4.3
# Prepare Input Variables
PF=false #print flag
DF=false #delete flag
ID="" # fax id
IDF=false # ID set flag
BASEPATH=$(dirname $(realpath $0))
for ARG in $@
do
case $ARG in
"-p") PF=true ;;
"-d") DF=true ;;
"-pd") PF=true; DF=true ;;
"-dp") PF=true; DF=true ;;
esac
if [[ $ARG =~ [0-9]+ && $IDF = false ]]
then
ID=$ARG
IDF=true
echo $ID
fi
done
if [ $IDF = false ]
then
echo "Guessing…"
ID=$(tail -n 1 $BASEPATH/.fax_history)
if [ -z $ID ]
then
echo "Nothing to guess from. Please send a fax first"
exit 1
fi
IDF=true
fi
. $BASEPATH/authorization.sh # Checks if account works - after changed auth processes not necessarily needed anymore
JSON=$(curl -X GET -H "accept: application/json" --user $SIPUSER:$SIPPWD "https://api.sipgate.com/v2/history/$ID" -s)
DATE=$(echo $JSON | jq '.created' | sed -e 's:"::g' )
if [ -z $DATE ]
then
echo "Fax seems to not exist with this account."
exit 1
fi
DATE=$(date -d $DATE +%Y%m%d%H%M)
FILE=$(echo $JSON | jq '.reportUrl' | sed -e 's:"::g' )
OUTFILE="$DATE-$ID-report.pdf"
if [ -z $FILE ]
then
echo "Fax seems not to be sent successfully (yet). No report available"
if [ $DF = true ]
then
read -p "Delete id from history anyways? (y/n) " DIN
if [ $DIN =~ [yYjJ] ]
then
echo "$(grep -v "^$ID$" $BASEPATH/.fax_history)" > $BASEPATH/.fax_history
fi
fi
exit 1
fi
if [ $PF = false ]
then
echo "Speichere Report in $OUTFILE"
curl $FILE --output $OUTFILE -s
else
echo "Schicke Report an Drucker"
curl $FILE -s --output - | lp -
fi
if [ $DF = true ]
then
echo "$(grep -v "^$ID$" $BASEPATH/.fax_history)" > $BASEPATH/.fax_history
fi