diff --git a/1stRUNconfig.sh b/1stRUNconfig.sh new file mode 100755 index 0000000..471c37e --- /dev/null +++ b/1stRUNconfig.sh @@ -0,0 +1,107 @@ +#!/bin/bash +######################################################################## +# Author: Fred (support@qo-op.com) +# Version: 2020.12.04 +# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) +######################################################################## +# +# This script is run from ~/.config/autostart/Astroport_X_config.desktop +# +######################################################################## +# Create secret key files +# ~/.zen/secret.june +# ~/.zen/secret.dunikey +# ~/.zen/secret.ipfs & /tmp/config.ipfs +# ~/.zen/ipfs.sync +######################################################################## +[[ -f ~/.zen/ipfs.sync ]] && echo "CONFIG ALREADY DONE" && source ~/.zen/ipfs.sync && exit 0 + +function cleanTMP +{ + rm -f /tmp/secret.june /tmp/secret.dunikey /tmp/config.ipfs /tmp/secret.ipfs /tmp/secret.all +} + +# NB: 2> >(grep -v 'GtkDialog' >&2) remove zenity console warning +zenity --question --width 300 --text "Initialiser votre station Astroport?" 2> >(grep -v 'GtkDialog' >&2) +[ $? == 1 ] && exit 1 + +######################################################################## +# LOGIN (=SALT) +salt="$(~/.zen/astroport/zen/tools/diceware.sh 3 | xargs)" +# PASS (=PEPPER) +pepper="$(~/.zen/astroport/zen/tools/diceware.sh 3 | xargs)" + +g1_profil=$(zenity --entry --width 300 --text "Nom de votre machine" --title "Astroport -- Profil" --entry-text="$(hostname)" 2> >(grep -v 'GtkDialog' >&2)); +g1_salt=$(zenity --entry --width 300 --text "Identifiant gchange/cesium (sel)" --title "Astroport - Sel" --entry-text="$salt" 2> >(grep -v 'GtkDialog' >&2)); +[ ${#g1_salt} -lt 8 ] && zenity --warning --width 300 --text "Identifiant doit faire plus de 8 caractères!!" 2> >(grep -v 'GtkDialog' >&2) && cleanTMP && exit 1 +g1_pepper=$(zenity --entry --width 300 --text "Mot de passe gchange/cesium (poivre)" --title "Astroport - Poivre" --entry-text="$pepper" 2> >(grep -v 'GtkDialog' >&2)); + + +echo "CREATING /tmp/secret.june" +echo "$g1_salt" > /tmp/secret.june +echo "$g1_pepper" >> /tmp/secret.june + +echo "________________ https://gchange.fr ________________" > /tmp/secret.all +cat /tmp/secret.june >> /tmp/secret.all + +######################################################################## +echo "CREATING /tmp/secret.dunikey" +python3 ~/.zen/astroport/zen/tools/key_create_dunikey.py "$g1_salt" "$g1_pepper" + +g1pub=$(cat /tmp/secret.dunikey | grep "pub" | cut -d ' ' -f 2) +g1sec=$(cat /tmp/secret.dunikey | grep "sec" | cut -d ' ' -f 2) + +echo "" >> /tmp/secret.all +echo "_________________ https://cesium.app _______________" >> /tmp/secret.all +cat /tmp/secret.dunikey >> /tmp/secret.all +echo "" >> /tmp/secret.all + + +######################################################################## +echo "CREATING /tmp/config.ipfs" +ipfs_ID=$(python3 ~/.zen/astroport/zen/tools/create_ipfsnodeid_from_tmp_secret.dunikey.py) + +echo $ipfs_ID > /tmp/secret.ipfs && source /tmp/secret.ipfs +jq -r --arg PeerID "$PeerID" '.Identity.PeerID=$PeerID' ~/.ipfs/config > /tmp/config.tmp +jq -r --arg PrivKEY "$PrivKEY" '.Identity.PrivKey=$PrivKEY' /tmp/config.tmp > /tmp/config.ipfs +rm /tmp/config.tmp + +echo "" >> /tmp/secret.all +echo "_____________________ IPFS ________________________" >> /tmp/secret.all +cat /tmp/secret.ipfs >> /tmp/secret.all +echo "" >> /tmp/secret.all + +## Which directory to sync with IPFS +IPFS_sync_directory=$(zenity --file-selection --title="Choisissez le répertoire à partager par IPFS avec vos amis" --directory 2> >(grep -v 'GtkDialog' >&2)) +[[ ! -d $IPFS_sync_directory ]] && zenity --warning --width 300 --text "Aucun répertoire... ANNULATION" 2> >(grep -v 'GtkDialog' >&2) && cleanTMP && exit 1 + +echo "IPFS_SYNC_DIR=$IPFS_sync_directory" >> /tmp/secret.all + +######################################################################## +echo "Copy new keys?" +zenity --width=971 --height=600 --title "Validation de votre configuration" --text-info --filename="/tmp/secret.all" 2> >(grep -v 'GtkDialog' >&2) +[ $? == 1 ] && cleanTMP && exit 1 + +[[ -f ~/.zen/secret.dunikey.old ]] && zenity --warning --width 300 --text "ANNULATION! Il existe déjà une sauvegarde d'anciennes clefs... support@qo-op.com" 2> >(grep -v 'GtkDialog' >&2) && cleanTMP && exit 1 + +mv ~/.zen/secret.june ~/.zen/secret.june.old +mv /tmp/secret.june ~/.zen/secret.june + +mv ~/.zen/secret.dunikey ~/.zen/secret.dunikey.old +mv /tmp/secret.dunikey ~/.zen/secret.dunikey + +mv ~/.zen/secret.ipfs ~/.zen/secret.ipfs.old +mv /tmp/secret.ipfs ~/.zen/secret.ipfs + +mv ~/.ipfs/config ~/.ipfs/config.old +mv /tmp/config.ipfs ~/.ipfs/config + +rm /tmp/secret.all + +# WRITE ~/.zen/ipfs.sync CONFIG +echo "IPFS_SYNC_DIR=$IPFS_sync_directory" > ~/.zen/ipfs.sync + +echo "OK. Restart now" +zenity --warning --width 300 --text "Veuillez redémarrer l'ordinateur pour activer votre configuration..." 2> >(grep -v 'GtkDialog' >&2) + +exit 0