2020-03-21 05:02:16 +01:00
#!/bin/bash
########################################################################
# Author: Fred (support@qo-op.com)
# Version: 2020.03.21
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
########################################################################
MY_PATH = " `dirname \" $0 \"` " # relative
MY_PATH = " `( cd \" $MY_PATH \" && pwd )` " # absolutized and normalized
ME = " ${ 0 ##*/ } "
echo '
########################################################################
# \\///
# qo-op
2020-03-22 05:41:24 +01:00
############# '$MY_PATH/$ME'
2020-03-21 05:02:16 +01:00
########################################################################
# ex: ./'$ME'
2020-03-23 19:07:37 +01:00
# Initialize SSB + G1SSB about + IPFS Node publish
2020-03-21 05:02:16 +01:00
########################################################################
o__ __o __o o__ __o o__ __o o__ __o
/v v\ __| > /v v\ /v v\ <| v\
/> <\ | /> <\ /> <\ / \ <\
o/ <o> _\o ____ _\o ____ \o / o/
<| _\_ _o__ | \_ \_ _o__ \_ \_ _o__ | __ _<|
\\ | < > \ \ | \
\ / | \ / \ / <o> /
o o o o o o o | o
<\_ _ __/> __| >_ <\_ _ __/> <\_ _ __/> / \ __/>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# [ASTROPORT](https://astroport.com)
########################################################################
'
2020-03-23 19:07:37 +01:00
########################################################################
# ENVIRONEMENT DETECTION + IPFS ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_info
########################################################################
2020-03-21 05:02:16 +01:00
IPFSNODEID = $( ipfs id -f= '<id>\n' )
2020-03-22 04:59:40 +01:00
[ [ $IPFSNODEID = = "" ] ] && echo "ERROR missing IPFSNODEID" && exit 1
2020-03-22 00:03:47 +01:00
mkdir -p ~/.zen/ipfs/.$IPFSNODEID /G1SSB
2020-03-23 19:07:37 +01:00
########################################################################
# TODO: Create unique hostname in swarm !! uidna
2020-03-22 05:41:24 +01:00
EXTERNAL = $( cat /etc/hostname) .local
2020-03-23 19:07:37 +01:00
[ [ " $1 " = = "KILL" ] ] && cp -f ~/.ssb/config.save && kill -9 $( cat ~/.zen/ssb.pid.bash) && killall node && echo "
2020-03-22 05:41:24 +01:00
_ _ _ _
| | ( _) | |
| | ___| | |
| | / / | | |
| <| | | |
2020-03-23 19:07:37 +01:00
| _| \_ \_ | _| _| ed
2020-03-22 06:04:44 +01:00
"
2020-03-22 04:45:20 +01:00
ssbpub = $( sbotc whoami 2>/dev/null | jq -r .id)
if [ [ $ssbpub = = "" ] ] ; then
2020-03-23 19:07:37 +01:00
# ssb-server not running
2020-03-22 04:45:20 +01:00
2020-03-23 19:07:37 +01:00
[ [ " $1 " = = "RESET" ] ] && rm ~/.ssb # REMOVE BACKUP
[ [ -d ~/.ssb.$USER ] ] && echo " Backup already exists for $USER . MANUAL CHECK : rm -Rf ~/.ssb. $USER " && exit 1
2020-03-22 05:41:24 +01:00
[ [ -d ~/.ssb ] ] && mv ~/.ssb ~/.ssb.$USER && rm -Rf ~/.ssb # BACKUP ~/.ssb
2020-03-22 04:45:20 +01:00
mkdir -p ~/.ssb
2020-03-22 04:59:40 +01:00
echo "
2020-03-22 04:45:20 +01:00
_ __ __ _
_ _ .__| _o _ ( _ ( _ | _)
( _( _) | || | ( _| __) __) | _)
_|
$EXTERNAL
"
[ [ -f ~/.ssb/config ] ] && cp -f ~/.ssb/config ~/.ssb/config.bkp
cat > ~/.ssb/config <<EOF
{
2020-03-23 19:07:37 +01:00
"incoming" : {
"net" : [ { "port" : 8008, "scope" : "public" , "transform" : "shs" } ]
} ,
"outgoing" : {
"net" : [ { "transform" : "shs" } ]
2020-03-22 04:45:20 +01:00
}
}
EOF
2020-03-22 04:59:40 +01:00
echo '
2020-03-22 04:45:20 +01:00
__ _ _ _ _
( _ | _| _) \ /| _| _) o._ o_| _
__) | _| \ \/ | _| \ || || | _
2020-03-22 04:59:40 +01:00
'
2020-03-22 04:45:20 +01:00
cat > ~/.zen/run-ssb-PUB_$EXTERNAL .sh <<EOF
#!/bin/bash
2020-03-22 05:41:24 +01:00
echo _$ > ~/.zen/ssb.pid.bash
2020-03-22 04:45:20 +01:00
while true; do
2020-03-22 06:39:43 +01:00
ssb-server start --host $EXTERNAL 2>/tmp/ssb.debug
2020-03-22 05:41:24 +01:00
echo _! > ~/.zen/ssb.pid
2020-03-22 04:45:20 +01:00
done
EOF
2020-03-22 06:39:43 +01:00
[ [ $1 = = "PROD" ] ] && sed -i s/tmp/dev/g ~/.zen/run-ssb-PUB_$EXTERNAL .sh && sed -i sed -i s/ssb\. debug/null/g ~/.zen/run-ssb-PUB_$EXTERNAL .sh # PROD=/dev/null
2020-03-22 05:41:24 +01:00
sed -i s/_/\$ /g ~/.zen/run-ssb-PUB_$EXTERNAL .sh
2020-03-22 04:45:20 +01:00
chmod 755 ~/.zen/run-ssb-PUB_$EXTERNAL .sh
~/.zen/run-ssb-PUB_$EXTERNAL .sh &
2020-03-22 05:41:24 +01:00
sleep 5
2020-03-22 04:45:20 +01:00
2020-03-23 19:07:37 +01:00
[ [ -f ~/.ssb/secret.dunikey ] ] && cp ~/.ssb/secret.dunikey ~/.zen/secret.dunikey.$( date -u +%s%N | cut -b1-13)
2020-03-22 04:45:20 +01:00
ssbpub = $( sbotc whoami 2>/dev/null | jq -r .id)
fi
2020-03-22 04:59:40 +01:00
# secret.dunikey ? NODE_G1PUBKEY
[ [ ! -f ~/.ssb/secret.dunikey ] ] && $MY_PATH /tools/secret2dunikey.sh
NODE_G1PUBKEY = $( cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
2020-03-22 04:45:20 +01:00
echo "
$ssbpub
_____ _____ _
( _ | /\ | _) || _| \
2020-03-22 05:41:24 +01:00
oooooooo__) | /--\| \| | _| _/ !!!!!!!!!!!!!!
2020-03-22 04:45:20 +01:00
"
2020-03-21 05:02:16 +01:00
## PUBLISH ABOUT MESSAGE
##############################################
2020-03-22 04:45:20 +01:00
# CREATE G1 wallet QRCode
2020-03-22 00:03:47 +01:00
qrcodefile = ~/.zen/ipfs/.$IPFSNODEID /G1SSB/_g1.qrcode.png
2020-03-21 05:02:16 +01:00
qrencode -s 5 -o $qrcodefile " $NODE_G1PUBKEY "
2020-03-22 04:45:20 +01:00
# Publish G1 Wallet PUBKEY QRCode to SSB
2020-03-21 05:02:16 +01:00
name = ${ qrcodefile ##*/ }
id = " $( sbotc blobs.add < $qrcodefile ) "
type = " $( file -b --mime-type $qrcodefile ) "
size = " $( wc -c < $qrcodefile ) "
2020-03-22 04:45:20 +01:00
# Publish ABOUT
sbot publish --type about --about $ssbpub --description " Welcome to [Astroport](https://astroport.com) G1SSB/IPFS Station [ $IPFSNODEID ](http://localhost:8080/ipns/ $IPFSNODEID ) " --name " $USER @ $( cat /etc/hostname) " --image " $id "
# Publish QRCode FILE post
2020-03-22 00:03:47 +01:00
sbotc publish '{"type":"post","text":"[G1SSB_Wallet.png](' " $id " ')\nUse https://cesium.app to send payment.\nComment your transaction with ' "'Zen'" ' to order ZenTag...","mentions":[{"link":"' " $id " '","name":"' " $name " '","size":' " $size " ',"type":"' " $type " '"}]}'
2020-03-21 05:02:16 +01:00
# COPY NODE G1SSB ID to IPFS
2020-03-22 00:03:47 +01:00
echo " $ssbpub " > ~/.zen/ipfs/.$IPFSNODEID /G1SSB/_ssb.whoami
echo " $NODE_G1PUBKEY " > ~/.zen/ipfs/.$IPFSNODEID /G1SSB/_g1.pubkey
2020-03-21 05:02:16 +01:00
2020-03-22 04:45:20 +01:00
IWALLETS = $( ipfs add -rHq ~/.zen/ipfs | tail -n 1)
NODEIPNS = $( ipfs name publish --quieter /ipfs/$IWALLETS )
echo "
/\ | _ _ _| _
2020-03-22 05:41:24 +01:00
/--\| _) ( _) | _|| _ message published
2020-03-22 04:45:20 +01:00
$ssbpub
http://localhost:8080/ipns/$IPFSNODEID /.$IPFSNODEID /G1SSB/
INVITATION : $( sbotc invite.create 1)
"