Astroport.ONE/_12345.sh

52 lines
1.9 KiB
Bash
Raw Normal View History

2022-11-02 13:31:39 +01:00
#!/bin/bash
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
################################################################################
# This script scan Swarm API layer from official bootstraps
# Then publish map of json DApp data
2022-11-02 14:06:26 +01:00
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
2022-11-02 13:31:39 +01:00
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
2022-11-02 14:06:26 +01:00
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
[[ ! $myIP ]] && myIP="127.0.1.1"
PORT=12345
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); ## $USER running ipfs
LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ## SWARM#0 ENTRANCE URL
2022-11-02 13:31:39 +01:00
for bootnode in $(cat ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | grep -Ev "#") # remove comments
do
ipfsnodeid=${bootnode##*/}
2022-11-02 14:06:26 +01:00
mkdir -p ~/.zen/tmp/swarm/$ipfsnodeid
2022-11-02 13:31:39 +01:00
echo "IPFS get /ipns/$ipfsnodeid"
2022-11-02 14:06:26 +01:00
[[ $YOU ]] && echo "http://$myIP:8080/ipns/${ipfsnodeid} ($YOU)" && ipfs --time-out 12s get -o ~/.zen/tmp/swarm/$ipfsnodeid /ipns/$ipfsnodeid
## [[ ! -s ~/.zen/tmp/swarm/$ipfsnodeid/index.json ]] && echo "$LIBRA/ipns/${ipfsnodeid}" && curl -m 6 -so ~/.zen/tmp/swarm/$ipfsnodeid/index.json "$LIBRA/ipns/${ipfsnodeid}"
echo "Updated : ~/.zen/tmp/swarm/$ipfsnodeid"
ls ~/.zen/tmp/swarm/$ipfsnodeid
2022-11-02 13:31:39 +01:00
done
2022-11-02 14:06:26 +01:00
ls ~/.zen/tmp/${IPFSNODEID}/
ROUTING=$(ipfs add -rwq ~/.zen/tmp/${IPFSNODEID} | tail -n 1 )
echo "SELF PUBLISHING SWARM STATUS"
ipfs name publish --allow-offline /ipfs/$ROUTING
HTTPCORS="HTTP/1.1 200 OK
Access-Control-Allow-Origin: '*'
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET
Server: Astroport.ONE
Content-Type: application/json; charset=UTF-8
{
\"ipns\"=\"${IPFSNODEID}\"
\"url\"=\"http://${myIP}:8080/ipns/${IPFSNODEID}\"
}
"