diff options
Diffstat (limited to 'bin/ak-sm-filejoiner')
-rwxr-xr-x | bin/ak-sm-filejoiner | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/bin/ak-sm-filejoiner b/bin/ak-sm-filejoiner new file mode 100755 index 0000000..f16abfc --- /dev/null +++ b/bin/ak-sm-filejoiner @@ -0,0 +1,90 @@ +#!/bin/bash +# +set -xe + +PROGRAM="$(basename $0)" + +usage(){ + echo "$PROGRAM <hash>" +} + +cdaw(){ + pwd > tmp_holder +} + +cdaw + +CURDIR="$(cat tmp_holder)" + +TMPWD="/tmp/rjs" + +if [ ! -d "$TMPWD" ] +then + mkdir -p "$TMPWD" + if [ "$?" != 0 ] + then + echo "Can't create $TMPWD dir" + exit 1 + fi +fi + +MAPSDIR="$AK_WORKDIR/fmp" + +CHKDIR="$AK_WORKDIR/ftr" + +cd $CHKDIR +if [ "$?" != 0 ] +then + echo "Can't get dir" + exit 1 +fi + + + +if [ ! -z $1 ] +then + MAPSFILE="$1" + + echo '#!/bin/bash' > script + + # We create a script to copy all the chunks and rename them to their serialized + # name produced by split when we splitted the file + awk '{print "cp '$CHKDIR'/"$1" '$TMPWD'/"$2" "}' $MAPSDIR/$MAPSFILE| grep chk >> script + + bash script + + if [ "$?" != 0 ] + then + echo "Error executing copy script" + exit 1 + fi + rm script + + cd $TMPWD + + echo "$PWD" + + # Final name we are going to rename to + OUTPUT="$(tail -n1 $MAPSDIR/$MAPSFILE | awk '{print $2}')" + + echo $OUTPUT + + # We grep the MAPSFILE for chk filenames in lines and we print them all in + # one line so the first `cat` will concatenate all chunks to OUTPUT + cat $(echo -n $(cat $MAPSDIR/$MAPSFILE|grep chk|awk '{print $2" "}'|tr -d '\n')) > $OUTPUT + + # We check if everything is okay + sha512sum -c $MAPSDIR/$MAPSFILE + if [ "$?" != "0" ]; then + logit "[ERROR]" "Error while checking sums" + exit 1 + fi + + mv $OUTPUT $CURDIR + + rm -rf "$TMPWD" + + rm $CURDIR/tmp_holder +else + usage +fi |