mdlspipe/hash-files
Mike Holloway b772285a81 On branch create-csv
Changes to be committed:
modified:   hash-files
	Added functionality for csv creation and writing to temp file for virtual memory persistence.
	Final write function may do some validation checks and then write the temp file to its permanent output path.

Next Steps:
 - Should probably package a logrotate.d conf file as well for the logs as part of the logging feature.
2022-03-04 00:07:11 -05:00

84 lines
1.5 KiB
Bash
Executable File

#!/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