#!/bin/bash # set -xe PROGRAM="$(basename $0)" usage(){ echo "$PROGRAM " } 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 _ak_log_error "Error while checking sums" exit 1 fi mv $OUTPUT $CURDIR rm -rf "$TMPWD" rm $CURDIR/tmp_holder else usage fi