aboutsummaryrefslogtreecommitdiff
path: root/lib/_ak_smfiles
diff options
context:
space:
mode:
authorkaotisk <kaotisk@arching-kaos.org>2024-12-28 15:59:04 +0200
committerkaotisk <kaotisk@arching-kaos.org>2024-12-28 15:59:04 +0200
commit89d00fcbc75e128cba516009db100daec4b794a9 (patch)
tree9e98d87d9fef51a06d830ef2dd659cdc6fed2fb4 /lib/_ak_smfiles
parent756db3cbdb91d2cb4773dd16aec3b54d1a52c462 (diff)
downloadarching-kaos-tools-89d00fcbc75e128cba516009db100daec4b794a9.tar.gz
arching-kaos-tools-89d00fcbc75e128cba516009db100daec4b794a9.tar.bz2
arching-kaos-tools-89d00fcbc75e128cba516009db100daec4b794a9.zip
Diffstat (limited to 'lib/_ak_smfiles')
-rwxr-xr-xlib/_ak_smfiles38
1 files changed, 3 insertions, 35 deletions
diff --git a/lib/_ak_smfiles b/lib/_ak_smfiles
index 4663b45..6cb7ef8 100755
--- a/lib/_ak_smfiles
+++ b/lib/_ak_smfiles
@@ -73,17 +73,14 @@ else
_ak_log_info "Workdir found"
fi
-cdaw(){
+function cdaw(){
pwd > tmp_holder
}
-_ak_sm_file_joiner(){
+function _ak_sm_file_joiner(){
cdaw
-
CURDIR="$(cat tmp_holder)"
-
TMPWD="/tmp/rjs"
-
if [ ! -d "$TMPWD" ]
then
mkdir -p "$TMPWD"
@@ -93,46 +90,34 @@ _ak_sm_file_joiner(){
exit 1
fi
fi
-
cd $CHKDIR
if [ $? -ne 0 ]
then
_ak_log_error "Can't get dir"
exit 1
fi
-
if [ ! -z $1 ]
then
MAPSFILE="$1"
-
echo '#!/usr/bin/env 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" "}' $FILEMAPSDIR/$MAPSFILE| grep chk >> script
-
bash script
-
if [ $? -ne 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 -n 1 $FILEMAPSDIR/$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 $FILEMAPSDIR/$MAPSFILE|grep chk|awk '{print $2" "}'|tr -d '\n')) > $OUTPUT
-
# We check if everything is okay
sha512sum -c $FILEMAPSDIR/$MAPSFILE
if [ $? -ne 0 ]
@@ -140,11 +125,8 @@ _ak_sm_file_joiner(){
_ak_log_error "Error while checking sums"
exit 1
fi
-
mv $OUTPUT $CURDIR
-
rm -rf "$TMPWD"
-
rm $CURDIR/tmp_holder
else
_ak_log_error "No hash given"
@@ -152,7 +134,7 @@ _ak_sm_file_joiner(){
fi
}
-_ak_sm_file_splitter(){
+function _ak_sm_file_splitter(){
#
# The concept is simple
#
@@ -170,10 +152,8 @@ _ak_sm_file_splitter(){
#
# 6. We are done!
#
-
# Uncomment next line if you want to debug
# set -xe
-
if [ ! -f "$1" ]
then
echo "ERROR File not found"
@@ -181,44 +161,32 @@ _ak_sm_file_splitter(){
else
FILE="$1"
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"
}