diff options
-rwxr-xr-x | bin/ak-data-expand | 101 | ||||
-rwxr-xr-x | bin/enter | 66 |
2 files changed, 143 insertions, 24 deletions
diff --git a/bin/ak-data-expand b/bin/ak-data-expand new file mode 100755 index 0000000..25e4295 --- /dev/null +++ b/bin/ak-data-expand @@ -0,0 +1,101 @@ +#!/bin/bash +PROGRAM="$(basename $0)" +logit(){ + logthis "<$PROGRAM>" "$1" "$2" +} +if [ ! -z "$1" ] && [ ! -z "$2" ] +then + echo -n "$1" | grep -e 'Qm.\{44\}' >/dev/null + if [ "$?" == 0 ] + then + ipfs --timeout=10s cat $1 > /dev/null + if [ "$?" == 0 ] + then + ipfs --timeout=10s cat $1 | json_pp > /dev/null + if [ "$?" == 0 ] + then + ipfs --timeout=10s cat $1 | jq | grep ipfs > /dev/null + if [ "$?" == 0 ] + then + DATA="$(ipfs --timeout=10s cat $1 | jq | grep ipfs | sed -e 's/"ipfs": "//g; s/[",]//g; s/ //g')" + if [ "$?" == 0 ] + then + ipfs --timeout=10s cat $1 | jq | grep detach > /dev/null + if [ "$?" == 0 ] + then + DETACH="$(ipfs --timeout=10s cat $1 | jq | grep detach | sed -e 's/"detach": "//g; s/[",]//g; s/ //g')" + if [ "$?" == 0 ] + then + echo -n "$2" | grep -e 'Qm.\{44\}' >/dev/null + if [ "$?" == 0 ] + then + gpg="$2" + ipfs --timeout=10s get $gpg > /dev/null 2>&1 + if [ "$?" == 0 ] + then + gpg2 --import $gpg > /dev/null 2>&1 + if [ "$?" == 0 ] + then + logit "[GPG]" "$gpg imported." + else + logit "[ERROR]" "Could not import GPG key: $gpg ." + exit 1 + fi + else + logit "[ERROR]" "Could not get GPG key: $gpg ." + exit 1 + fi + ipfs --timeout=10s get $DETACH > /dev/null 2>&1 + if [ "$?" == 0 ] + then + mv $DETACH $DATA.asc + logit "[INFO]" "Block signature downloaded" + else + logit "[ERROR]" "Error while getting $DETACH for $DATA" + exit 1 + fi + ipfs --timeout=10s get $DATA > /dev/null 2>&1 + if [ "$?" == 0 ] + then + logit "[INFO]" "Downloaded $DATA." + else + logit "[ERROR]" "Could not get $DATA" + exit 1 + fi + gpg2 --verify $DATA.asc > /dev/null 2>&1 + if [ "$?" == 0 ] + then + logit "[GPG]" "$gpg signature of $DATA is verified." + else + logit "[ERROR]" "Could not verify $DATA with GPG key $gpg." + exit 1 + fi + echo '"'$1'":{"ipfs":"'$DATA'","detach":"'$DETACH'"},' + else + echo "Crap! Thanks though" + fi + else + echo "Crap! Thanks though" + fi + else + echo "Crap! Thanks though" + fi + else + echo "Crap! Thanks though" + fi + else + echo "Crap! Thanks though" + fi + else + echo "Crap! Thanks though" + fi + else + echo "Crap! Thanks though" + fi + else + echo "Crap! Thanks though" + fi +else + echo "Useless without a thing to do." + +fi @@ -1,17 +1,20 @@ #!/bin/bash # enter # -# Using this tool, we can seek a whole chain if available from an -# IPFS CID or an IPNS link. Default (no arguments) will retrieve -# the local ZCHAIN starting from the IPFS CID stored in the file -# that is tracked by the $ZLATEST environment variable. +# Using this tool, we can seek a whole zchain, if available from +# an IPFS CID or an IPNS link. +# +# Default (no arguments) will retrieve the local ZCHAIN starting +# from the IPFS CID stored in the file that is tracked by the +# $ZLATEST environment variable. # # enter [-n IPNS_LINK] # enter [IPFS CID] +# enter -nV # enter # -# Returns a JSON array representing the chain retrieved and logs -# messages to LOGSFILE +# Returns a JSON array representing the chain retrieved. +# Logs messages to $LOGSFILE. PROGRAM="$(basename $0)" @@ -30,7 +33,7 @@ usage(){ echo " <ipfs-link> Specify IPFS CID for entrance" echo "" echo "Note that combined flags don't work for now" - echo "Running with no flags crawls your chain" + echo "Running with no flags crawls your chain based on ZLATEST environment variable" } # Start of tests #entrance="QmW5WVXCJfhb4peHG6cbEdamC24vZzMX2Vz386vpENh38U" @@ -73,9 +76,9 @@ then then timestamp='' echo '{"zblock":"'$zblock'",' - ipfs cat $zblock | json2bash > $TEMPASSIN/tmp-zblock + ipfs --timeout=10s cat $zblock | json2bash > $TEMPASSIN/tmp-zblock source $TEMPASSIN/tmp-zblock - ipfs cat $block | json2bash > $TEMPASSIN/tmp-block + ipfs --timeout=10s cat $block | json2bash > $TEMPASSIN/tmp-block source $TEMPASSIN/tmp-block logit "[INFO]" "BLOCK REFERENCED" if [ ! -v $timestamp ] @@ -149,14 +152,12 @@ do logit "[INFO]" "Examining $zblock" echo '{"zblock":"'$zblock'",' - # We create files named after each ZBLOCK IPFS CID for later - # reference. Files are empty. - touch $ZBLOCKDIR/$zblock - logit "[INFO]" "Created reference" - - # We concatenate the zblock's contents, pipe them through filter - # json2bash and output them to tmp-file - ipfs cat $zblock | json2bash > $TEMPASSIN/tmp-zblock + # We concatenate the zblock's contents, pipe + # them through filter json2bash and output + # them to tmp-file + # + # We check if any $zblock at all + ipfs --timeout=10s cat $zblock > /dev/null 2>&1 if [ "$?" == 0 ] then logit "[INFO]" "ZBLOCK $zblock READ" @@ -164,6 +165,17 @@ do logit "[ERROR]" "ZBLOCK $zblock READ failed" exit 1 fi + # If it's JSON formated + ipfs --timeout=10s cat $zblock | json_pp > /dev/null 2>&1 + if [ "$?" == 0 ] + then + logit "[INFO]" "ZBLOCK $zblock is JSON" + else + logit "[ERROR]" "ZBLOCK $zblock is not JSON" + exit 1 + fi + # Then we pass it through the filter and save it + ipfs --timeout=10s cat $zblock | json2bash > $TEMPASSIN/tmp-zblock # Be sure that there are the expected values # We need 'block' and 'block_signature' inside a 'zblock' @@ -171,9 +183,9 @@ do grep -e 'block_signature' $TEMPASSIN/tmp-zblock > /dev/null 2>&1 if [ "$?" == 0 ] then - logit "[INFO]" "ZBLOCK $zblock has block_signature" + logit "[INFO]" "ZBLOCK $zblock contains a block_signature" else - logit "[ERROR]" "ZBLOCK $zblock has no block_signature" + logit "[ERROR]" "ZBLOCK $zblock doesn't contain a block_signature" exit 1 fi grep -e 'block=' $TEMPASSIN/tmp-zblock > /dev/null 2>&1 @@ -185,6 +197,11 @@ do exit 1 fi + # We create files named after each ZBLOCK IPFS CID for later + # reference. Files are empty. + touch $ZBLOCKDIR/$zblock + logit "[INFO]" "Created reference" + # Supposingly you are on a safe environment and you only have # access to your chain, I would consider mild secure to source # the files into your bash. @@ -195,7 +212,7 @@ do # Same as above applies to BLOCK and DATA subparts of each ZBLOCK # BLOCKS echo '"block":"'$block'",' - ipfs cat $block | json2bash > $TEMPASSIN/tmp-block + ipfs --timeout=10s cat $block | json2bash > $TEMPASSIN/tmp-block if [ "$?" == 0 ] then logit "[INFO]" "BLOCK $block READ" @@ -251,7 +268,7 @@ do if [ "$?" == 0 ] then mv $block_signature $block.asc - logit "[GPG]" "Block signature downloaded" + logit "[INFO]" "Block signature downloaded" else logit "[ERROR]" "Error while getting $block_signature for $block" exit 1 @@ -273,10 +290,11 @@ do exit 1 fi fi - profile show $data + ak-data-expand $data $gpg + # DATA (but we don't source it's stuff) # Only print to stdout - #ipfs cat $data + #ipfs --timeout=10s cat $data touch $DATADIR/$data # Now, since we sourced the BLOCK to our terminal, we can search @@ -292,7 +310,7 @@ do # Otherwise, we inform of the sequence else #echo "$zblock after $previous" - logit "[INFO]" "Found a previous block: $previous" + logit "[INFO]" "Found a previous block for $zblock: $previous" echo '"previous":"'$previous'"},' zblock=$previous fi |