#!/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##*/}" echo "EXECUTE $ME ($1=phone, $2=uid)" phone="$1" groupe="$2" avis="$(cat /tmp/${phone}_message)" ## LOG echo "${phone};${groupe};${avis}" >> /home/${YOU}/.zen/SMS/received.log ######################################################################## echo "## GET STATION G1PUB" ######################################################################## [[ ! -f /home/${YOU}/.zen/secret.dunikey ]] && echo "Crypto is missing... please provide /home/${YOU}/.zen/secret.dunikey by installing 'astrXbian' TestNet" && exit 1 G1PUB=$(cat /home/${YOU}/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) || er+=" ipfs daemon not running" ######################################################################## echo "## sha256sum($phone)" ######################################################################## hash=$(echo $phone | sha256sum | cut -d ' ' -f1) ######################################################################## echo "=> ${hash}" ######################################################################## htest=$(ls /home/${YOU}/.zen/SMS/PHONE/${hash} 2>dev/null) if [[ $htest ]]; then echo "$phone already registered in $htest" xzuid=$(cat "/home/${YOU}/.zen/SMS/PHONE/${hash}/xzuid" | rev | cut -d '/' -f 2 | rev) fi mkdir -p /home/${YOU}/.zen/SMS/PHONE/${hash}/ if [[ ! -f /home/${YOU}/.zen/SMS/PHONE/${hash}/passwd.encrypt ]]; then ######################################################################## echo "## Encrypt ${phone} into /home/${YOU}/.zen/SMS/PHONE/${hash}/passwd.encrypt" ######################################################################## echo $phone > /tmp/${phone}_phone $MY_PATH/natools.py encrypt -p $G1PUB -i /tmp/${phone}_phone -o /home/${YOU}/.zen/SMS/PHONE/${hash}/passwd.encrypt [[ ! $? == 0 ]] && echo "FAILED" && exit 1 fi if [[ ! $xzuid ]]; then ######################################################################## echo "## GESTION IDENTITES: G1 + NEXTCLOUD + QRCODE" ######################################################################## ## MAKE UNIQ xzuid xzuid=$($MY_PATH/diceware.sh 1 | xargs)${RANDOM:0:5} while [[ "$(cat /home/${YOU}/.zen/SMS/PHONE/*/xzuid)" == "${xzuid}" ]] do xzuid=$($MY_PATH/diceware.sh 1 | xargs)${RANDOM:0:5} done echo "$xzuid" > /home/${YOU}/.zen/SMS/PHONE/${hash}/xzuid echo "=> $xzuid + NOUVEAU +" ######################################################################## echo "## $xzuid / $phone => NEW DUNIKEY & QRCODE" ######################################################################## ######################################################################## echo "## MAKE /tmp/secret.dunikey" ######################################################################## $MY_PATH/key_create_dunikey.py "$xzuid" "$phone" [[ ! $? == 0 ]] && echo "FAILED" && exit 1 g1pub=$(cat /tmp/secret.dunikey | grep "pub" | cut -d ' ' -f 2) g1sec=$(cat /tmp/secret.dunikey | grep "sec" | cut -d ' ' -f 2) ######################################################################## echo "## SAVING /home/${YOU}/.zen/SMS/PHONE/${hash}/secret.dunikey.encrypt" ######################################################################## $MY_PATH/natools.py encrypt -p $G1PUB -i /tmp/secret.dunikey -o /home/${YOU}/.zen/SMS/PHONE/${hash}/secret.dunikey.encrypt [[ ! $? == 0 ]] && echo "FAILED" && exit 1 ######################################################################## echo "GETTING AVATAR" ######################################################################## curl -s https://thispersondoesnotexist.com/image -o /home/${YOU}/.zen/SMS/PHONE/${hash}/avatar.jpg ######################################################################## echo "CREATING GCHANGE+ PROFILE" ######################################################################## $MY_PATH/timeout.sh -t 10 $MY_PATH/jaklis/jaklis.py -k /tmp/secret.dunikey -n "https://data.gchange.fr" set --name "${xzuid}" --avatar "/home/${YOU}/.zen/SMS/PHONE/${hash}/avatar.jpg" #GCHANGE+ ######################################################################## echo "CREATING CESIUM+ PROFILE" ######################################################################## $MY_PATH/timeout.sh -t 10 $MY_PATH/jaklis/jaklis.py -k /tmp/secret.dunikey -n "https://g1.data.e-is.pro" set --name "${xzuid}" --avatar "/home/${YOU}/.zen/SMS/PHONE/${hash}/avatar.jpg" #CESIUM+ if [[ -f /var/www/nextcloud/occ ]]; then ######################################################################## echo "## REGISTER Nextcloud : ${xzuid} / $phone " ######################################################################## sudo su -s /bin/sh www-data -c "export OC_PASS=\"$phone\" && php /var/www/nextcloud/occ user:add --password-from-env --group=\"astroport\" --display-name=\"${xzuid}\" ${xzuid}" fi ######################################################################## echo "## MAKING QRCODE" ######################################################################## qrencode -s 6 -o "/home/${YOU}/.zen/SMS/PHONE/${hash}/qrcode.png" "$g1pub" else echo "=> $xzuid" fi ######################################################################## echo "## GESTION ${groupe} = GROUPES / GUILDES" ######################################################################## if [[ ! -d /home/${YOU}/.zen/SMS/GUILDES/${groupe} ]]; then mkdir -p /home/${YOU}/.zen/SMS/GUILDES/${groupe} gammu-smsd-inject TEXT "$phone" -text "Enregistrement ${groupe}" fi ## WRITE AVIS FOR GROUPE echo "${phone};${avis}" >> /home/${YOU}/.zen/SMS/GUILDES/${groupe}/AVIS exit 0