b772285a81
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.
84 lines
1.5 KiB
Bash
Executable File
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
|
|
|
|
|