diff options
Diffstat (limited to 'bin/ak-filesplitter')
-rwxr-xr-x | bin/ak-filesplitter | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/bin/ak-filesplitter b/bin/ak-filesplitter deleted file mode 100755 index c675870..0000000 --- a/bin/ak-filesplitter +++ /dev/null @@ -1,136 +0,0 @@ -#!/bin/bash -# -# The concept is simple -# -# 1. For a given file we split in 1MB files inside a temporary directory -# -# 2. We then create a map file, containing the resulted files and their sha512sum -# -# 3. We move the files to our $CHKDIR named after their checksums -# -# We ultimately want to be seeding the file so -# -# 4. We append the checksum of the original file with its name into the map file -# -# 5. We rename the map file after its checksum and move it to maps directory -# -# 6. We are done! -# - -# Uncomment next line if you want to debug -# set -xe -PROGRAM="$(basename $0)" - -if [ ! -f "$1" ] -then - echo "[ERROR] File not found" - exit 1 -else - FILE="$1" -fi - -# The directory where the chunked data will be living at -CHKDIR="$AK_WORKDIR/ftr/" -# The directory for the map files so we can reconstruct the file -FILEMAPSDIR="$AK_WORKDIR/fmp/" -# A temporary root dir to work on -TEMPORARYDIR="/tmp/tltmp" -# A subdir to split the files there -TECHDIR="/tmp/tltmp/chks/" -# A pin point to return from where we came from -CURRENTDIR="$(pwd)/" - -# Our snippet for logging debug info -logit(){ - ak-logthis "<$PROGRAM>" "$1" "$2" -} - -# Checking directories and create them if necessary - -# TECHDIR -if [ ! -d "$TECHDIR" ] -then - mkdir -p "$TECHDIR" - if [ "$?" == 0 ] - then - logit "[INFO]" "Folder $TECHDIR created!" - else - logit "[ERROR]" "Problem occured while creating $TECHDIR" - echo "[ERROR] Can't create $TECHDIR" - exit 1 - fi -else - logit "[INFO]" "Temp dir found" -fi - -# FILEMAPSDIR -if [ ! -d "$FILEMAPSDIR" ] -then - mkdir -p "$FILEMAPSDIR" - if [ "$?" == 0 ] - then - logit "[INFO]" "Folder $FILEMAPSDIR created!" - else - logit "[ERROR]" "Problem occured while creating $FILEMAPSDIR" - echo "[ERROR] Can't create $FILEMAPSDIR" - exit 1 - fi -else - logit "[INFO]" "Mapsdir found" -fi - -# CHKDIR -if [ ! -d "$CHKDIR" ] -then - mkdir -p "$CHKDIR" - if [ "$?" == 0 ] - then - logit "[INFO]" "Folder $CHKDIR created!" - else - logit "[ERROR]" "Problem occured while creating $CHKDIR" - echo "[ERROR] Can't create $CHKDIR" - exit 1 - fi -else - logit "[INFO]" "Workdir found" -fi - -# Uncomment next line in case you want to debug the resulting script as well -# echo 'set -xe' > $TEMPORARYDIR/cmd_queue.sh - -# We get the SHA512 hash for the $FILE given -CHECKSUM=$(sha512sum "$FILE"|awk '{print $1}') - -# We split the file into 1048576 bytes and output the chunks into TECHDIR -split -b 1048576 --additional-suffix ".chk" -d "$FILE" "$TECHDIR$(basename "$FILE")-" - -# We go over there... -cd $TECHDIR - -# We get every chunks' SHA512 and we craft a script to rename the chunks and -# move them to CHKDIR -sha512sum * > $TEMPORARYDIR/map; while IFS="" read -r p || [ -n "$p" ] -do - echo $p | awk '{print "mv " $2 " '$CHKDIR'" $1}' >> $TEMPORARYDIR/cmd_queue.sh -done < $TEMPORARYDIR/map - -# We run the crafted script -sh $TEMPORARYDIR/cmd_queue.sh - -# and we delete it -rm $TEMPORARYDIR/cmd_queue.sh - -# We inform the map about the original $FILE name and SHA512 -echo "$CHECKSUM $(basename "$FILE")" >> $TEMPORARYDIR/map - -# We get the SHA512 hash of the resulted map file -MAPFILEHASH="$(sha512sum $TEMPORARYDIR/map | awk '{ print $1 }')" - -# and we rename it with it and move it to FILEMAPSDIR -`sha512sum $TEMPORARYDIR/map | awk '{print "mv " $2 " '$FILEMAPSDIR'" $1}'` - -# We remove the TEMPORARYDIR -rm -rf $TEMPORARYDIR - -# and print the MAPFILEHASH -echo "$MAPFILEHASH" |