2020-12-04 13:40:38 +01:00
#!/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
########################################################################
2020-12-04 15:38:46 +01:00
[ [ $( which zenity) = = "" ] ] && echo "Please! sudo apt install zenity. EXIT" && exit 1
2020-12-04 13:40:38 +01:00
[ [ -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
2020-12-04 15:16:16 +01:00
# CREATE gchange+ profile
# cd ~/.zen/astroport/zen/jaklis
# ./jaklis.py --key "~/.zen/secret.dunikey" --node "https://data.gchange.fr" set --name "$g1_profil" --avatar "~/.zen/astroport/logo.png"
# ERROR
2020-12-04 13:40:38 +01:00
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