#!/bin/bash ZFILESDIR="$AK_WORKDIR/files" pwd > .pwd CRD=$(cat .pwd) PROGRAM="$(basename $0)" #set -xe source $AK_LIBDIR/_ak_logit source $AK_LIBDIR/_ak_ipfs source $AK_LIBDIR/_ak_gpg if [ ! -d $ZFILESDIR ]; then mkdir $ZFILESDIR if [ $? == 0 ] then logit "INFO" "Folder $ZFILESDIR created!" else logit "ERROR" "Failed to create $ZFILESDIR folder" exit 1 fi cd $ZFILESDIR else logit "INFO" "$ZFILESDIR found!" fi usage(){ echo "$PROGRAM - file" echo " -h, --help Prints this help message" echo " add <file> Adds file to zchain as a zblock" echo " index List files" echo " full-index List all files" echo " ls-map-files List map files" } add(){ FILENAME="$1" main $FILENAME $CRD cat data | jq -M } main(){ FILENAME="$1" CRP="$2" TEMPASSIN="$(ak-tempassin)" cd $TEMPASSIN echo "Adding $FILENAME" logit "INFO" "Switching to tmp folder..." if [ $? == 0 ]; then logit "INFO" "Success" else logit "ERROR" "Error with tmp folder" exit 5 fi logit "INFO" "Copying $1 to $TEMPASSIN" cp $CRP/$FILENAME $FILENAME if [ $? == 0 ]; then logit "INFO" "Copied successfully" else logit "ERROR" "Error copying..." fi logit "INFO" "Adding $FILENAME to IPFS..." FILE_IPFS_HASH=$(_ak_ipfs_add $FILENAME) if [ $? == 0 ]; then logit "INFO" "Added $FILENAME to IPFS" else logit "ERROR" "Error in adding the $FILENAME to IPFS" fi logit "INFO" "Adding $FILE to SHAMAPSYS..." FILEMAP_SHA512_HASH=$(ak-sm-filesplitter $FILENAME) if [ $? == 0 ]; then logit "INFO" "Added $FILENAME to SHAMAPSYS" else logit "ERROR" "Error in adding the $FILENAME to SHAMAPSYS" fi logit "INFO" "Signing..." SIGN_FILE=$FILENAME".asc" _ak_gpg_sign_detached $SIGN_FILE $FILENAME if [ $? == 0 ]; then logit "INFO" "Signed" else logit "ERROR" "Error while signing" fi logit "INFO" "Adding signature to IPFS" SIGNATURE=$(_ak_ipfs_add $SIGN_FILE) if [ $? == 0 ]; then logit "INFO" "Added" else logit "ERROR" "Error while adding" fi logit "INFO" "Adding signature to SHAMAPSYS" SHAMAPSIGMAP=$(ak-sm-filesplitter $SIGN_FILE) if [ $? == 0 ]; then logit "INFO" "Added" else logit "ERROR" "Error while adding" fi cat > data <<EOF { "timestamp":"$(date -u +%s)", "filename":"$FILENAME", "shamap":"$FILEMAP_SHA512_HASH", "shamapsig":"$SHAMAPSIGMAP", "ipfs":"$FILE_IPFS_HASH", "detach":"$SIGNATURE" } EOF echo "Printing data..." cat data echo "Publishing..." ak-zblock-pack sha-files/announce $(pwd)/data if [ $? == 0 ] then echo "cool" else echo "not?" exit 2 fi } index(){ tail -n1 $AK_WORKDIR/fmp/* | grep '^[abcdef1234567890]' | awk '{ print $2 }' } ls-mapfiles(){ cd $AK_WORKDIR/fmp for f in `find . -type f | sed -e 's/\.\///g'`;do FILENAME="$(tail -n1 $f | grep '^[abcdef1234567890]' | awk '{ print $2 }')" FILEHASH="$(tail -n1 $f | grep '^[abcdef1234567890]' | awk '{ print $1 }')" MAPFILE="$f" printf "\nMap: %s\nFilename: %s\nSum: %s\n\n" $MAPFILE $FILENAME $FILEHASH done } full-index(){ tail -n1 $AK_WORKDIR/fmp/* | grep '^[abcdef1234567890]' } if [ ! -z $1 ]; then case $1 in -h | --help) usage; exit;; add) add $2; exit;; index) index; exit;; full-index) full-index; exit;; ls-map-files) ls-mapfiles; exit;; *) usage; exit;; esac else usage fi