G1BILLET/G1BILLETS.sh

91 lines
3.5 KiB
Bash
Executable File

#!/bin/bash
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
################################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
################################################################################
# Create and print 6 G1Billets de $MONTANT DU
# ${MY_PATH}/G1BILLETS.sh 5 986397643 ticket
################################################################################
MONTANT="$1"
[[ $MONTANT == "" ]] && MONTANT="___"
UNIQID="$2"
[[ $UNIQID == "" ]] && UNIQID=$(${MY_PATH}/diceware.sh 1 | xargs)${RANDOM:0:2}$(${MY_PATH}/diceware.sh 1 | xargs)
STYLE="$3"
## CHECK STYLE IS EMAIL
if [[ "${STYLE}" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then
echo "PLAYER : $STYLE"
EMAIL=${STYLE}
STYLE="astro"
else
echo "STYLE=${STYLE}"
fi
## PLANCHE DE 6 BILLETS PAR DEFAUT
NBbillets=6
[[ "$STYLE" == "xbian" ]] && NBbillets=1 ## STYLE=xbian => 1 BILLET
[[ "$STYLE" == "1" ]] && NBbillets=1 && STYLE="" ## 1 BILLET PDF
[[ "$STYLE" == "ticket" ]] && NBbillets=1 && echo "TICKET" ## 1 BILLET JPG
[[ "$STYLE" == "astro" ]] && NBbillets=1
# CHECK IF $STYLE IMAGES EXIST
[[ ! -f ${MY_PATH}/images/fond${STYLE}.jpg ]] && echo "missing fond${STYLE}.jpg" && exit 1
[[ ! -f ${MY_PATH}/images/g1${STYLE}.png ]] && echo "missing g1${STYLE}.jpg" && exit 1
[[ ! -f ${MY_PATH}/images/logo${STYLE}.png ]] && echo "missing logo${STYLE}.jpg" && exit 1
mkdir -p "/tmp/g1billet/${UNIQID}"
# CREATION DE $NBbillets BILLETS DE $MONTANT DU
boucle=0;
while [ $boucle -lt $NBbillets ]
do
boucle=$((boucle+1))
NUMBER=$(${MY_PATH}/diceware.sh 4 | xargs)
SECRET=$(${MY_PATH}/diceware.sh 4 | xargs)
# CREATION CLEF BILLET
BILLETPUBKEY=$(python3 ${MY_PATH}/key_create_dunikey.py "$NUMBER" "$SECRET")
rm -f /tmp/secret.dunikey
[[ "$STYLE" == "astro" ]] \
&& ${MY_PATH}/keygen -t ipfs -o /tmp/g1billet/${UNIQID}.ipns.key "$NUMBER" "$SECRET" \
&& ASTRONAUTENS=$(ipfs key import ${UNIQID} -f pem-pkcs8-cleartext /tmp/g1billet/${UNIQID}.ipns.key) \
&& ipfs key rm ${UNIQID} && rm /tmp/g1billet/${UNIQID}.ipns.key \
&& [[ $EMAIL ]] && curl -s "https://astroport.copylaradio.com/?salt=$NUMBER$pepper=$SECRET&g1pub=on&email=$EMAIL" \
# CREATION FICHIER IMAGE BILLET
$(${MY_PATH}/MAKE_G1BILLET.sh "${NUMBER}" "${SECRET}" "${MONTANT}" "${BILLETPUBKEY}" "${UNIQID}" "${STYLE}" "${ASTRONAUTENS}")
done
if [[ "${STYLE}" == "ticket" || "${STYLE}" == "xbian" || "${STYLE}" == "astro" ]]
then
cp /tmp/g1billet/${UNIQID}/*.jpg /tmp/g1billet/${UNIQID}.jpg
# CLEANING TEMP FILES
rm -Rf /tmp/g1billet/${UNIQID}
# ALLOWS ANY USER TO DELETE
chmod 777 /tmp/g1billet/${UNIQID}.jpg
else
# MONTAGE DES IMAGES DES BILLETS VERS /tmp/g1billet/${UNIQID}.pdf
montage /tmp/g1billet/${UNIQID}/*.jpg -tile 2x3 -geometry 964x459 /tmp/g1billet/${UNIQID}.pdf
# NB!! if "not autorized" then edit /etc/ImageMagick-6/policy.xml and comment
# <!-- <policy domain="coder" rights="none" pattern="PDF" /> -->
# CLEANING TEMP FILES
rm -Rf /tmp/g1billet/${UNIQID}
# ALLOWS ANY USER TO DELETE
chmod 777 /tmp/g1billet/${UNIQID}.pdf
fi
exit