Commit 108f58f4 authored by matograine's avatar matograine

* MAJ suite passage Silkaj v0.7

* ajout vérification de l'inexistence d'authfile (les tests ont révélé un bug) et déplacement.
parent a51b9e9f
......@@ -7,7 +7,7 @@ export PATH=$PATH:/usr/local/bin # utile pour l'utiliser en tâche CRON.
#### Paramètres de l'instance G1Cotis ####
# Dossier G1Cotis (indiquer le chemin complet)
# !! Ne mettez pas de / à la fin !! exemple : /home/toto/G1cotis
dossier=/home/UTILISATEUR/G1cotis
dossier=/home/thomas/Documents/Associatif/June/Developpement/silkaj/g1cotis
#### Paramètres Silkaj ####
## Choisir le noeud Duniter sur lequel vous vous connectez (de préférence un noeud régional, ou personnel, différent de g1.duniter.org)
......@@ -16,12 +16,12 @@ noeud="g1-test.cgeek.fr:443" #"g1.presles.be:443" "ts.g1.librelois.fr" "g1.dunit
monnaie=ĞTest
## Si votre distribution GNU/Linux vous permet d'installer Silkaj directement :
silkaj=silkaj
#silkaj=silkaj -p $noeud
## Si vous avez installé Silkaj en environnement virtuel :
## Chemin vers le dossier contenant Silkaj :
#cd /home/UTILISATEUR/silkaj
#silkaj='pipenv run silkaj'
cd /home/thomas/Documents/Associatif/June/Developpement/silkaj/g1cotis
silkaj="pipenv run silkaj -p $noeud"
########################
......
......@@ -10,6 +10,16 @@ source $dossier_scripts/fonctions.sh
#### Début du script ####
## nettoyer authfile si besoin
if [ -e authfile ] ; then
mv -f authfile $dossier_auth/authfile.$(date +%d-%m-%y_%H:%m)
fi
if [ -e $dossier/authfile ] ; then
mv -f $dossier/authfile $dossier_auth/authfile.$(date +%d-%m-%y_%H:%m)
fi
# 1- information
printf "\n##################################\n#### Configuration de Ğ1Cotis ####\n################################## \n\n"
......
......@@ -16,7 +16,7 @@ done
adr_verif ()
{
echo "Vérification de l'adresse..."
$silkaj amount "$1" | grep Total > /dev/null
$silkaj balance "$1" | grep Total > /dev/null
return $?
}
......
......@@ -14,33 +14,6 @@
## Chemin du dossier où est stocké le fichier d'identification du compte intermédiaire
auth=$dossier_auth/$recept.auth # fichier d'authentification du compte intermédiaire, de forme <CLEF_PUB>.auth
#### Fonctions ####
ecriture_liste ()
{
lst=( $@ )
n=0
while [ $n -lt ${#lst[@]} ] ; do
echo ${lst[$n]} >> $fichier
n=$((n+1))
done
}
#tx_verif ()
adr_verif ()
{
echo "Vérification de l'adresse..."
$silkaj amount "$1" | grep Total > /dev/null
return $?
}
tps_random () # paramètres : maximum
{
tps=$RANDOM
tps=$(( $tps % $1 ))
return $tps
}
#### Log ####
echo "===================="
......@@ -73,7 +46,7 @@ fi
## Réserve
## Montant
while true ; do
montant=$($silkaj amount $recept -p $noeud | grep "Total Quantitative" | cut -d'=' -f2 | cut -d' ' -f2- | sed -e "s/ $monnaie//g" | bc )
montant=$($silkaj balance $recept | grep "Total Quantitative" | cut -d'=' -f2 | cut -d' ' -f2- | sed -e "s/ $monnaie//g" | bc )
if [ "$?" == "0" ] ; then
break
else
......@@ -108,7 +81,7 @@ elif [ $montant_round -ge $min ] ; then
restant=$(echo "$restant - $cot" |bc )
# envoi de la transaction
while true ; do
$silkaj tx --auth-file --file=$auth --output="${lst_tx[$a]}" --amount="$cot" --comment="$com" -y -p $noeud
$silkaj -y tx --auth-file --file=$auth --output="${lst_tx[$a]}" --amount="$cot" --comment="$com"
if [ $? == 0 ] ; then
echo "cotisation $(($a+1)) effectuée" ; break
else
......@@ -123,7 +96,7 @@ elif [ $montant_round -ge $min ] ; then
echo "apres cotisations :" $restant $monnaie
if [ ! $restant_round -eq 0 ] ; then
while true ; do
$silkaj tx --auth-file --file=$auth --output="$fin" --amount="$restant" --comment="G1Cotis" -y -p $noeud
$silkaj -y tx --auth-file --file=$auth --output="$fin" --amount="$restant" --comment="G1Cotis"
if [ $? == 0 ] ; then
echo "transaction finale effectuée" ; break
else
......
......@@ -31,7 +31,7 @@ fi
## Montant
while true ; do
montant=$($silkaj amount $recept -p $noeud | grep "Total Quantitative" | cut -d'=' -f2 | cut -d' ' -f2- | sed -e "s/ $monnaie//g" | bc )
montant=$($silkaj balance $recept | grep "Total Quantitative" | cut -d'=' -f2 | cut -d' ' -f2- | sed -e "s/ $monnaie//g" | bc )
if [ "$?" == "0" ] ; then
break
else
......@@ -54,7 +54,7 @@ elif [ $(echo "100 * $montant_round" | bc) -ge $(echo "100 * $virt_recur" | bc)
## Envoi du virement
while true ; do
$silkaj tx --auth-file --file=$auth --output="$fin" --amount="$virt_recur" --comment=$com -y -p $noeud
$silkaj -y tx --auth-file --file=$auth --output="$fin" --amount="$virt_recur" --comment=$com
if [ $? == 0 ] ; then
echo "virement effectué" ; break
else
......
......@@ -43,7 +43,7 @@ printf "#!/bin/bash \n
## Le compte intermédiaire reçoit les paiements, puis envoie les cotisations aux comptes choisis et le restant au compte final.
## On utilise pour ce compte un fichier d'authentification, stocké dans un dossier spécifique.
## Le fichier d'authentification doit être de forme <CLEF_PUBLIQUE>.auth
## Vous le générez sur Silkaj par la commande 'silkaj generate_auth_file'. Prenez soin de le renommer et le déplacer dans le bon dossier par la suite.\n\n
## Vous le générez sur Silkaj par la commande 'silkaj authfile'. Prenez soin de le renommer et le déplacer dans le bon dossier par la suite.\n\n
## Adresse publique du compte intermédiaire\n" >> $fichier
## fin de l'intro ##
......@@ -58,7 +58,7 @@ echo -n "Connaissez-vous déjà les identifiants pour ce compte ? (o/N) : "
read ouinon
if [ "$ouinon" == "o" ] || [ "$ouinon" == "O" ] ; then
printf "\nNous allons créer le fichier d'authentification pour ce compte. Soyez sûr.e de vous rappeler des identifiants, Ğ1Cotis ne les enregistrera pas.\nEntrez les identifiants lorsque Silkaj vous le demandera.\n\nEn attente de Silkaj...\n\n"
$silkaj generate_auth_file > /tmp/$nom
$silkaj authfile > /tmp/$nom
pubkey=$(cat /tmp/$nom | grep "Authentication file 'authfile' generated and stored in current folder for following public key:" | cut -d':' -f2 | sed 's/.\{1\}//' ) #| cut -d' ' -f2- | sed -e 's/ $monnaie//g' )
printf "\nClef publique : $pubkey pour le compte $nom. Est-ce juste ? (o/N) : "
read ouinon
......@@ -76,7 +76,7 @@ read ouinon
mdp=$(diceware -d - --no-caps)
printf "\nNous vous proposons un identifiant secret et un mot de passe, basés sur Diceware. \nEcrivez-les (copier-coller) quand Silkaj vous les demandera.\nRappel : <Ctrl+Maj+C> et <Ctrl+Maj+V> pour copier-coller dans le terminal.\nSoyez sûr.e de vous en rappeler, Ğ1Cotis ne les enregistrera pas. \n\nID= $id\nMDP= $mdp\n\nEn attente de Silkaj...\n\n"
rappel=yes
$silkaj generate_auth_file > /tmp/$nom
$silkaj authfile > /tmp/$nom
pubkey=$(cat /tmp/$nom | grep "Authentication file 'authfile' generated and stored in current folder for following public key:" | cut -d':' -f2 | sed 's/.\{1\}//' ) #| cut -d' ' -f2- | sed -e 's/ $monnaie//g' )
printf "recept=$pubkey\n" >> $fichier
cp ./authfile $dossier_auth/$pubkey.auth
......@@ -149,7 +149,7 @@ for i in ${lst_p[@]} ; do
tot=$(($tot + $i))
if [ $tot -gt 100 ] ; then
rm $fichier
printf "\n\nERREUR : Le total dépasse 100%%. Veuillez relancer le script nouveau-compte.sh et vérifier vos pourcentages.\n\n"
printf "\n\nERREUR : Le total dépasse 100%%. **Veuillez relancer le script nouveau-compte.sh et vérifier vos pourcentages**.\n\n" ; exit
continue
fi
done
......
......@@ -56,7 +56,7 @@ echo -n "Connaissez-vous déjà les identifiants pour ce compte ? (o/N) : "
read ouinon
if [ "$ouinon" == "o" ] || [ "$ouinon" == "O" ] ; then
printf "\nNous allons créer le fichier d'authentification pour ce compte. Soyez sûr.e de vous rappeler des identifiants, Ğ1Cotis ne les enregistrera pas.\nEntrez les identifiants lorsque Silkaj vous le demandera.\n\nEn attente de Silkaj ...\n\n"
$silkaj generate_auth_file > /tmp/$nom
$silkaj authfile > /tmp/$nom
pubkey=$(cat /tmp/$nom | grep "Authentication file 'authfile' generated and stored in current folder for following public key:" | cut -d':' -f2 | sed 's/.\{1\}//' ) #| cut -d' ' -f2- | sed -e 's/ $monnaie//g' )
printf "\nClef publique : $pubkey pour le compte $nom. Est-ce juste ? (o/N) : "
read ouinon
......@@ -74,7 +74,7 @@ read ouinon
mdp=$(diceware -d - --no-caps)
printf "\nNous vous proposons un identifiant secret et un mot de passe, basés sur Diceware. \nEcrivez-les (copier-coller) quand Silkaj vous les demandera.\nRappel : <Ctrl+Maj+C> et <Ctrl+Maj+V> pour copier-coller dans le terminal.\nSoyez sûr.e de vous en rappeler, Ğ1Cotis ne les enregistrera pas. \n\nID= $id\nMDP= $mdp\n\nEn attente de Silkaj ... \n\n"
rappel=yes
$silkaj generate_auth_file > /tmp/$nom
$silkaj authfile > /tmp/$nom
pubkey=$(cat /tmp/$nom | grep "Authentication file 'authfile' generated and stored in current folder for following public key:" | cut -d':' -f2 | sed 's/.\{1\}//' ) #| cut -d' ' -f2- | sed -e 's/ $monnaie//g' )
printf "recept=$pubkey\n" >> $fichier
cp ./authfile $dossier_auth/$pubkey.auth
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment