aboutsummaryrefslogtreecommitdiff
path: root/bin/ak-sm-files
diff options
context:
space:
mode:
Diffstat (limited to 'bin/ak-sm-files')
-rwxr-xr-xbin/ak-sm-files156
1 files changed, 156 insertions, 0 deletions
diff --git a/bin/ak-sm-files b/bin/ak-sm-files
new file mode 100755
index 0000000..7eb3b7d
--- /dev/null
+++ b/bin/ak-sm-files
@@ -0,0 +1,156 @@
+#!/bin/bash
+# The following creates a mixtape data message
+# We can extend it by calling the ak-pack_z_block.sh mixtape/add data
+ZFILESDIR="$AK_WORKDIR/files"
+TEMP="/tmp/aktmp"
+PROGRAM="$(basename $0)"
+#set -xe
+logit(){
+ ak-logthis "<$PROGRAM>" "$1" "$2"
+}
+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
+tempassin(){
+ if [ ! -z $1 ];
+ then
+ TEMPASSIN="$1"
+ else
+ TIMESTAMP="$(date -u +%s)"
+ TEMPASSIN="/tmp/aktmp_$TIMESTAMP"
+ fi
+ if [ ! -d $TEMPASSIN ]; then
+ mkdir $TEMPASSIN
+ fi
+ cd $TEMPASSIN
+ echo "$TEMPASSIN"
+
+}
+
+usage(){
+ echo "$PROGRAM - file"
+ echo " add <file>"
+ echo " index"
+}
+
+add(){
+ CRP="$(pwd)"
+ FILENAME="$1"
+ main $FILENAME $CRP
+ cat $TEMPASSIN/data | jq -M
+}
+main(){
+ FILENAME="$1"
+ CRP="$2"
+ echo "Adding $FILENAME"
+ logit "[INFO]" "Switching to tmp folder..."
+ TEMPASSIN="$(tempassin)"
+
+ cd $TEMPASSIN
+ if [ $? == 0 ]; then
+ logit "[INFO]" "Success"
+ else
+ logit "[ERROR]" "Error with tmp folder"
+ exit 5
+ fi
+ logit "[INFO]" "Copying $1 to $TEMPASSIN"
+
+ cp $2/$1 $TEMPASSIN/$1
+ if [ $? == 0 ]; then
+ logit "[INFO]" "Copied successfully"
+ else
+ logit "[ERROR]" "Error copying..."
+ fi
+
+ FILE="$TEMPASSIN/$1"
+
+ logit "[INFO]" "Adding $FILE to IPFS..."
+ FILE_IPFS_HASH=$(ak-ipfs-add $FILE)
+ if [ $? == 0 ]; then
+ logit "[INFO]" "Added $FILE to IPFS"
+ else
+ logit "[ERROR]" "Error in adding the $FILE to IPFS"
+ fi
+
+ logit "[INFO]" "Adding $FILE to SHAMAPSYS..."
+ FILEMAP_SHA512_HASH=$(ak-sm-filesplitter $FILE)
+ if [ $? == 0 ]; then
+ logit "[INFO]" "Added $FILE to SHAMAPSYS"
+ else
+ logit "[ERROR]" "Error in adding the $FILE to SHAMAPSYS"
+ fi
+
+ logit "[INFO]" "Signing..."
+ SIGN_FILE=$FILENAME".asc"
+ gpg2 --detach-sign --sign-with $FINGERPRINT --armor --output $SIGN_FILE $FILE
+ if [ $? == 0 ]; then
+ logit "[INFO]" "Signed"
+ else
+ logit "[ERROR]" "Error while signing"
+ fi
+
+ logit "[INFO]" "Adding signature to IPFS"
+ SIGNATURE=$(ak-ipfs-add $TEMPASSIN/$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 $TEMPASSIN/$SIGN_FILE)
+ if [ $? == 0 ]; then
+ logit "[INFO]" "Added"
+ else
+ logit "[ERROR]" "Error while adding"
+ fi
+
+ cat > $TEMPASSIN/data <<EOF
+{
+ "timestamp":"$(date -u +%s)",
+ "filename":"$FILENAME",
+ "shamap":"$FILEMAP_SHA512_HASH",
+ "shamapsigmap":"$SHAMAPSIGMAP",
+ "ipfs":"$FILE_IPFS_HASH",
+ "detach":"$SIGNATURE"
+}
+EOF
+
+echo "Printing data..."
+cat $TEMPASSIN/data
+echo "Publishing..."
+
+ ak-pack_z_block sha-files/announce data
+ if [ $? == 0 ]
+ then
+ echo "cool"
+ else
+ echo "not?"
+ exit 2
+ fi
+}
+
+
+index(){
+ tail -n1 $AK_WORKDIR/fmp/* | grep '^[abcdef1234567890]' | awk '{ print $2 }'
+}
+
+if [ ! -z $1 ]; then
+ case $1 in
+ help) usage; exit;;
+ add) add $2; exit;;
+ index) index; exit;;
+ *) usage; exit;;
+ esac
+else usage
+fi