aboutsummaryrefslogtreecommitdiff
path: root/bin/enter
diff options
context:
space:
mode:
authorkaotisk <kaotisk@arching-kaos.com>2021-12-18 08:33:02 +0200
committerkaotisk <kaotisk@arching-kaos.com>2021-12-18 08:33:02 +0200
commit606e3bd269fdc2cf687db82c43a5346f8081864f (patch)
tree2f88a716af27ebeacc7ef4c33fa467cf236c4477 /bin/enter
parent6cbf9b47f966556f92565392e83b410729c8be35 (diff)
downloadarching-kaos-tools-606e3bd269fdc2cf687db82c43a5346f8081864f.tar.gz
arching-kaos-tools-606e3bd269fdc2cf687db82c43a5346f8081864f.tar.bz2
arching-kaos-tools-606e3bd269fdc2cf687db82c43a5346f8081864f.zip
Different approach on installing, now symlinks
Diffstat (limited to 'bin/enter')
-rwxr-xr-xbin/enter85
1 files changed, 85 insertions, 0 deletions
diff --git a/bin/enter b/bin/enter
new file mode 100755
index 0000000..6865797
--- /dev/null
+++ b/bin/enter
@@ -0,0 +1,85 @@
+#!/bin/bash
+# By default we enter from the latest block
+# We can alter this by changing this value
+entrance="$(cat $ZLATEST)"
+
+# Start of tests
+#entrance="QmW5WVXCJfhb4peHG6cbEdamC24vZzMX2Vz386vpENh38U"
+#entrance="QmNjQq7GkuXGF8kFT1z2Mv3i4JhY7sBXVUmHDiR1zkQjoE"
+#entrance="QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH"
+# End of tests
+
+# We assign the IPFS CIDv0 of an empty file as this is used
+# as our GENESIS block, hence the "seed" that the tree grows
+# from.
+seed="$(cat $ZGENESIS)"
+
+# We assume that we found the entrance inside a block, hence
+# ZBLOCK is labeled as previous
+zblock="$entrance"
+
+# The loop
+# We break the loop from inside the loop
+while true
+do
+ # Check if $zblock exists as variable
+ if [ ! -v $zblock ]
+ then
+ # Check if it is not our seed cause if it is we skip this part
+ if [ "$zblock" != "$seed" ]
+ then
+ # Announce to stdout which ZBLOCK is being read at the moment
+ echo "Examining $zblock"
+
+ # We create files named after each ZBLOCK IPFS CID for later
+ # reference. Files are empty.
+ touch $ZBLOCKDIR/$zblock
+
+ # We concatenate the zblock's contents, pipe them through filter
+ # json2bash and output them to tmp-file
+ ipfs cat $zblock | json2bash > tmp-zblock
+
+ # 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.
+ # File an issue/pull request if you think it can be done better!!
+ source tmp-zblock
+
+ # Same as above applies to BLOCK and DATA subparts of each ZBLOCK
+ # BLOCKS
+ ipfs cat $block | json2bash > tmp-block
+ source tmp-block
+ touch $BLOCKDIR/$block
+
+ # DATA (but we don't source it's stuff)
+ # Only print to stdout
+ ipfs cat $data
+ touch $DATADIR/$data
+
+ # Now, since we sourced the BLOCK to our terminal, we can search
+ # for $previous variable. In case we don't find one, we exit with
+ # code 3
+ if [ -v $previous ]
+ then
+ echo "Block $block has no previous zblock"
+ exit 3
+
+ # Otherwise, we inform of the sequence
+ else
+ echo "$zblock after $previous"
+ zblock=$previous
+ fi
+
+ # Now check if it is equal to the seed
+ # which apparently means we reached the seed.
+ elif [ "$zblock" == "$seed" ]
+ then
+ echo "$zblock is GENESIS block"
+ exit 0
+ fi
+ # And finally, if nothing is there exit with error
+ else
+ echo "Check not passed... No previous IPFS CID"
+ exit 1
+ fi
+done