Astroport.ONE/start.sh

191 lines
6.9 KiB
Bash
Raw Normal View History

2022-03-08 23:37:08 +01:00
#!/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
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
isLAN=$(echo $myIP | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
[[ ! $myIP || $isLAN ]] && myIP="127.0.1.1"
ME="${0##*/}"
TS=$(date -u +%s%N | cut -b1-13)
2022-08-15 19:07:39 +02:00
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
2022-10-26 21:44:51 +02:00
###################################################
2022-11-03 20:11:17 +01:00
killall 12345.sh; killall "_12345.sh"; killall nc; killall tail; mkdir -p ~/.zen/tmp
2022-10-28 20:19:29 +02:00
~/.zen/Astroport.ONE/12345.sh > ~/.zen/tmp/12345.log &
2022-10-26 21:44:51 +02:00
tail -f ~/.zen/tmp/12345.log &
echo "1234 PORT SPIDER http://$myIP:1234"
###################################################
echo '
_ ____ _____ ____ ___ ____ ___ ____ _____ ___ _ _ _____
/ \ / ___|_ _| _ \ / _ \| _ \ / _ \| _ \_ _| / _ \| \ | | ____|
/ _ \ \___ \ | | | |_) | | | | |_) | | | | |_) || | | | | | \| | _|
/ ___ \ ___) || | | _ <| |_| | __/| |_| | _ < | | | |_| | |\ | |___
/_/ \_\____/ |_| |_| \_\\___/|_| \___/|_| \_\|_| \___/|_| \_|_____|
2022-05-05 04:12:07 +02:00
Ambassade numérique pair à pair sur IPFS.
2022-05-05 04:12:07 +02:00
@@@@@@@@@@@@@@@@@@
ASTROPORT
VISA : MadeInZion
2022-05-08 04:39:40 +02:00
@@@@@@@@@@@@@@@@@@'
echo
## VERIFY SOFTWARE DEPENDENCIES
[[ ! $(which ipfs) ]] && echo "EXIT. Vous devez avoir installé ipfs CLI sur votre ordinateur" && echo "https://dist.ipfs.io/#go-ipfs" && exit 1
2022-11-16 06:11:07 +01:00
YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1);
2022-10-10 18:06:37 +02:00
[[ ! $YOU ]] && echo "Lancez 'ipfs daemon' SVP sudo systemctl start ipfs" && exit 1
2022-09-12 14:58:08 +02:00
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
2022-10-27 16:28:44 +02:00
echo 'PRESS ENTER... '; read
2022-05-07 18:53:11 +02:00
## CREATE AND OR CONNECT USER
2022-09-13 18:45:42 +02:00
PS3='Créez VISA ou connectez-vous à votre compte Astronaute ___ '
2022-11-14 15:48:54 +01:00
players=("NOUVEAU VISA" "IMPORT GCHANGE" $(ls ~/.zen/game/players 2>/dev/null))
2022-09-06 02:19:49 +02:00
## MULTIPLAYER
2022-09-13 18:45:42 +02:00
2022-03-02 19:23:49 +01:00
select fav in "${players[@]}"; do
case $fav in
"NOUVEAU VISA")
2022-04-23 18:33:23 +02:00
${MY_PATH}/tools/VISA.new.sh
2022-05-07 18:53:11 +02:00
fav=$(cat ~/.zen/tmp/PSEUDO 2>/dev/null) && rm ~/.zen/tmp/PSEUDO
echo "Astronaute $fav bienvenue dans le jeu de terraformation forêt jardin MadeInZion"
exit
2022-03-02 19:23:49 +01:00
;;
2022-11-14 15:48:54 +01:00
"IMPORT GCHANGE")
echo "Saisissez votre 'identifiant Gchange'"
read SALT
echo "Saisissez votre 'mot de passe Gchange'"
read PEPPER
${MY_PATH}/tools/VISA.new.sh "$SALT" "$PEPPER"
fav=$(cat ~/.zen/tmp/PSEUDO 2>/dev/null) && rm ~/.zen/tmp/PSEUDO
echo "Astronaute $fav heureux de vous acceuillir"
exit
;;
2022-03-02 19:23:49 +01:00
"")
echo "Choix obligatoire. exit"
exit
;;
*) echo "Salut $fav"
break
;;
esac
done
2022-09-06 02:19:49 +02:00
PLAYER=$fav
2022-05-05 04:12:07 +02:00
rm -f ~/.zen/game/players/.current
ln -s ~/.zen/game/players/$PLAYER ~/.zen/game/players/.current
2022-03-07 02:02:11 +01:00
2022-09-15 14:55:11 +02:00
pass=$(cat ~/.zen/game/players/.current/.pass 2>/dev/null)
2022-09-06 02:19:49 +02:00
########################################## DEVEL
2022-09-15 15:01:34 +02:00
echo "Saisissez votre PASS -- UPGRADE CRYPTO FREELY -- $pass" && read pass
## DECODE CURRENT PLAYER CRYPTO
echo "********* DECODAGE SecuredSocketLayer *********"
rm -f ~/.zen/tmp/${PLAYER}.dunikey 2>/dev/null
2022-05-07 18:53:11 +02:00
openssl enc -aes-256-cbc -d -in "$HOME/.zen/game/players/.current/enc.secret.dunikey" -out "$HOME/.zen/tmp/${PLAYER}.dunikey" -k $pass 2>&1>/dev/null
2022-08-18 03:47:49 +02:00
[[ ! $? == 0 ]] && echo "ERROR. MAUVAIS PASS. EXIT" && exit 1
2022-09-06 02:19:49 +02:00
echo "________LOGIN OK____________";
echo
echo "DECHIFFRAGE CLEFS ASTRONAUTE"
echo "Votre Pass Astroport.ONE : $(cat ~/.zen/game/players/.current/.pass 2>/dev/null)"
2022-08-15 19:07:39 +02:00
G1PUB=$(cat ~/.zen/tmp/${PLAYER}.dunikey | grep 'pub:' | cut -d ' ' -f 2)
2022-08-18 03:47:49 +02:00
[ ! ${G1PUB} ] && echo "ERROR. MAUVAIS PASS. EXIT" && exit 1
2022-09-12 14:58:08 +02:00
echo "Clef Publque Astronaute : $G1PUB"
2022-09-06 02:19:49 +02:00
echo "ENTREE ACCORDEE"
2022-05-03 12:20:15 +02:00
echo
2022-08-18 03:47:49 +02:00
ASTRONAUTENS=$(ipfs key list -l | grep -w "$PLAYER" | cut -d ' ' -f 1)
2022-09-06 02:19:49 +02:00
echo "$(cat ~/.zen/game/players/.current/.pseudo 2>/dev/null) TW/Moa"
echo "http://127.0.0.1:8080/ipns/$ASTRONAUTENS"
2022-10-20 18:18:38 +02:00
echo "Activation Réseau P2P Astroport !"
2022-08-15 19:07:39 +02:00
2022-09-06 02:19:49 +02:00
echo
2022-08-15 19:07:39 +02:00
PS3="$PLAYER choisissez : __ "
2022-09-05 16:31:07 +02:00
choices=("AJOUTER VLOG" "CREER UN VOEU" "IMPRIMER QRVOEU" "IMPRIMER VISA" "EXPORTER VISA" "SUPPRIMER VISA" "QUITTER")
select fav in "${choices[@]}"; do
case $fav in
"IMPRIMER VISA")
echo "IMPRESSION"
${MY_PATH}/tools/VISA.print.sh
;;
2022-05-03 12:20:15 +02:00
"EXPORTER VISA")
2022-08-18 03:47:49 +02:00
echo "EXPORT IDENTITE ASTRONAUTE"
2022-05-07 18:53:11 +02:00
du -h ~/.zen/game/players/.current/
2022-08-23 19:34:47 +02:00
echo "MANUAL BACKUP ZIP ~/.zen/game/players/$PLAYER/"
2022-11-11 18:22:35 +01:00
## EXPORT TW + VOEUX IPNS KEYS
2022-08-18 03:47:49 +02:00
break
;;
2022-05-03 12:20:15 +02:00
"SUPPRIMER VISA")
2022-08-18 03:47:49 +02:00
echo "ATTENTION SUPPRESSION DEFINITIVE !!"
echo "Enter to continue. Ctrl+C to stop"
read
2022-08-15 19:07:39 +02:00
ipfs key rm $PLAYER; ipfs key rm $G1PUB;
2022-08-18 03:47:49 +02:00
for voeu in $(ls ~/.zen/game/players/$PLAYER/voeux/); do
ipfs key rm $voeu
[[ $voeu != "" ]] && rm -Rf ~/.zen/game/world/$voeu
done
echo "rm -Rf ~/.zen/game/players/$PLAYER"
2022-08-23 14:04:32 +02:00
$MY_PATH/tools/jaklis/jaklis.py -k $HOME/.zen/tmp/${PLAYER}.dunikey -n https://data.gchange.fr erase
2022-08-18 03:47:49 +02:00
# ~/.zen/astrXbian/zen/jaklis/jaklis.py -k $HOME/.zen/tmp/${PLAYER}.dunikey -n https://g1.data.e-is.pro erase
rm -Rf ~/.zen/game/players/$PLAYER
break
;;
2022-05-03 12:20:15 +02:00
2022-08-24 15:10:56 +02:00
"AJOUTER VLOG")
echo "Lancement Webcam..."
${MY_PATH}/tools/vlc_webcam.sh "$PLAYER"
2022-08-24 15:10:56 +02:00
;;
2022-08-18 18:32:01 +02:00
"CREER UN VOEU")
2022-09-05 16:31:07 +02:00
echo "QRCode à coller sur les lieux ou objets portant une Gvaleur"
2022-10-11 13:51:46 +02:00
cp ~/.zen/game/players/$PLAYER/ipfs/moa/index.html ~/.zen/tmp/$PLAYER.html
${MY_PATH}/ASTROBOT/G1Voeu.sh "" "$PLAYER" "~/.zen/tmp/$PLAYER.html"
DIFF=$(diff ~/.zen/game/players/$PLAYER/ipfs/moa/index.html ~/.zen/tmp/$PLAYER.html)
if [[ $DIFF ]]; then
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
cp ~/.zen/game/players/$PLAYER/ipfs/moa/.chain \
~/.zen/game/players/$PLAYER/ipfs/moa/.chain.$(cat ~/.zen/game/players/$PLAYER/ipfs/moa/.moats)
TW=$(ipfs add -Hq ~/.zen/game/players/$PLAYER/ipfs/moa/index.html | tail -n 1)
ipfs name publish --allow-offline -t 72h --key=$PLAYER /ipfs/$TW
echo $TW > ~/.zen/game/players/$PLAYER/ipfs/moa/.chain
echo $MOATS > ~/.zen/game/players/$PLAYER/ipfs/moa/.moats
fi
echo "================================================"
echo "$PLAYER : http://$myIP:8080/ipns/$ASTRONAUTENS"
echo "================================================"
;;
2022-05-03 12:20:15 +02:00
2022-09-05 16:31:07 +02:00
"IMPRIMER QRVOEU")
${MY_PATH}/tools/VOEUX.print.sh
2022-08-20 17:12:15 +02:00
;;
"QUITTER")
echo "CIAO" && exit 0
;;
2022-05-03 12:20:15 +02:00
"")
echo "Mauvais choix."
;;
2022-05-03 12:20:15 +02:00
esac
done
exit 0