You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
1.5 KiB

#!/usr/bin/env bash
set -a
source .env 2>&1 > /dev/null
set +a
## Functions
############
write_log () {
echo " ++ Write to log.
+++++++++++++++"
}
create_list_of_files () {
#echo "=== Get list of files in $Working_Directory. ===
#=================================================="
IFS=$'\n'
for file in $(find $Working_Fullpath -maxdepth 1 -type f); do
list_of_files+=( $file )
done
unset IFS
}
hash_files () {
#echo "=== Hash files. ===
#======================"
IFS=$'\n'
for file in ${list_of_files[@]}; do
hash=$(md5sum $file | awk '{ print $1 }')
list_of_hashes+=( $hash )
done
unset IFS
}
create_csv () {
#echo "=== Create array of comma-separated-values. ===
#=================================================="
for i in ${!list_of_files[@]}; do
csv_array+=( ${list_of_files[i]},${list_of_hashes[i]} )
done
export csv_array
}
write_data () {
#echo "=== Write data to a .csv file. ===
#===================================="
temp_csv_file=$(mktemp)
printf '%s,%s\n' "File Path" "File Hash" >> $temp_csv_file
for line in ${csv_array[@]};do
printf '%s\n' $line
done >> $temp_csv_file
# cat $temp_csv_file
}
cleanup () {
:
}
## Main
#######
trap cleanup EXIT
echo "Main Start"
create_list_of_files
write_log
hash_files
write_log
if [ ${#list_of_files[@]} != ${#list_of_hashes[@]} ];then
echo "Error! Number of files and hashes differs. Exiting..." && exit
else
create_csv
fi
write_log
write_data
write_log
cleanup
#while $list_of_files >=1; do
#done