G1sms/shell/cron_G1TAG_REFRESH.sh

84 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
###########################################################################################
# cron_G1TAG_REFRESH.sh
# Scan all TAG created by current $IPFSNODEID
# Update local and Publish it
# Remove too old or empty ones
##################################################################
YOU=$(ps aux --sort=+utime | grep ipfs | tail -n 1 | cut -d " " -f 1)
IPFSNODEID=$(su $YOU -c "ipfs id -f='<id>\n'")
NANODATE=$(date -u +%s%N) #1569692075385428020
# PROTECT from null HASH
for tag in ./wallets/.$IPFSNODEID/TAG/*; do
function rmtag () {
echo "__SUB:cron_G1TAG_REFRESH.sh: rm -Rf ./wallets/.$IPFSNODEID/TAG/${tagj}"
rm -Rf ./TAG/${tagj}
rm -f ./wallets/.$IPFSNODEID/TAG/${tagj}
rm -f ./wallets_swarm/.$IPFSNODEID/TAG/${tagj}
rm -f /home/$YOU/.ipfs/keystore/${tagj}
}
# Refresh G1Tag created by this NODE
tagj=$(echo $tag | cut -d '/' -f 5)
if [[ "${tagj}" == "" ]]; then echo "__SUB:cron_G1TAG_REFRESH.sh: EMPTY"; continue; fi
echo "__SUB:cron_G1TAG_REFRESH.sh: WORKING ON ${tagj}"
RR=$($YOU -c "ipfs cat /ipns/${tagj}/TAG_id | sed s/\ //g");
if [[ "$RR" == "" ]]; then
echo "__SUB:cron_G1TAG_REFRESH.sh: G1Tag Destroyed !!!??";
rmtag
continue;
fi
# RE-SYNC LOCAL & SWARM G1TAG - TODO Check for G1Tag chain corruption
mv ./TAG/${RR} ./TAG/${RR}.old
mkdir -p ./TAG/${RR}
chown -R $YOU ./TAG/${RR}
su $YOU -c "ipfs get --output=./TAG/${RR} /ipns/${tagj}"
oldtagval=$(cat ./TAG/${RR}.old/TAG_amount)
curtagval=$(cat ./TAG/${RR}/TAG_amount)
oldtagn=$(cat ./TAG/${RR}.old/TAG_n)
curtagn=$(cat ./TAG/${RR}/TAG_n)
oldtagchain=$(cat ./TAG/${RR}.old/TAG_chain)
curtagchain=$(cat ./TAG/${RR}/TAG_chain)
echo "__SUB:cron_G1TAG_REFRESH.sh: ./TAG/$RR VALUE: ($oldtagn) $oldtagval ZEN -> ($curtagn) $curtagval ZEN"
echo "__SUB:cron_G1TAG_REFRESH.sh: $oldtagchain -> $curtagchain"
rm -Rf ./TAG/${RR}.old
if [[ $curtagval -eq 0 || "$curtagval" == "" ]]; then rmtag; continue; fi
# SHOULD PUBLISH ONLY MORE THAN 6h NO USE G1TAG
last=$(cat ./TAG/${RR}/TAG_nanodate)
timediff=$( echo "${NANODATE} - ${last}" | bc -l )
# G1TAG TIME SYNC 21600 milliards de nanosecondes = 6h
if [[ $timediff -gt 21600000000000 ]]; then
# GET PUBLISHKEY for that G1TAG
if [[ ! -f /home/$YOU/.ipfs/keystore/${RR} ]]; then
echo "__SUB:cron_G1TAG_REFRESH.sh: GET PUBLISHKEY for that G1TAG";
su $YOU -c "ipfs get -o /home/$YOU/.ipfs/keystore/${RR}.crypt /ipns/$tagj/TAG_publishkey.MASTER.crypt"
if [[ ! -f /home/$YOU/.ipfs/keystore/${RR}.crypt ]]; then log "__SUB:cron_MINUTE.sh: error getting publishkey"; continue; fi
./shell/natools.py decrypt -k "$NODE_G1AUTHFILE" -i /home/$YOU/.ipfs/keystore/${RR}.crypt -o /home/$YOU/.ipfs/keystore/$RR
rm /home/$YOU/.ipfs/keystore/${RR}.crypt
fi
echo "__SUB:cron_G1TAG_REFRESH.sh: G1Tag PUBLISHKEY OK : /home/$YOU/.ipfs/keystore/${RR}"
echo ${NANODATE} > ./TAG/${RR}/TAG_nanodate
# PUBLISH VERIFIED G1Tag VERSION
I=$(su $YOU -c "ipfs add -qr ./TAG/${RR} | tail -n 1")
# RECORD TAG_chain And HASH again
echo "$I" > "./TAG/${JDESTRR}/TAG_chain"
I=$(su $YOU -c "ipfs add -qr ./TAG/${RR} | tail -n 1")
# IPNS $JDESTRR PUBLISH
J=$(su $YOU -c "ipfs name publish -k ${RR} --quieter /ipfs/${I}")
echo "__SUB:cron_G1TAG_REFRESH.sh: G1Tag IPNS PUBLISH"
fi
done
##################################################################