From b772285a81d5c7b629b1e6d5a6963f7f39aa3b38 Mon Sep 17 00:00:00 2001 From: Mike Holloway Date: Fri, 4 Mar 2022 00:07:11 -0500 Subject: [PATCH] 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. --- hash-files | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/hash-files b/hash-files index 433fdf6..895f314 100755 --- a/hash-files +++ b/hash-files @@ -13,8 +13,8 @@ echo " ++ Write to log. } create_list_of_files () { -echo "=== Get list of files in $Working_Directory. === -==================================================" +#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 ) @@ -23,8 +23,8 @@ unset IFS } hash_files () { -echo "=== Hash files. === -======================" +#echo "=== Hash files. === +#======================" IFS=$'\n' for file in ${list_of_files[@]}; do hash=$(md5sum $file | awk '{ print $1 }') @@ -34,13 +34,23 @@ unset IFS } create_csv () { -echo "=== Create array of comma-separated-values. === -==================================================" +#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. === -====================================" +#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 () { @@ -56,18 +66,13 @@ 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 - for i in ${!list_of_files[@]}; do - echo "/==============================/ - File: ${list_of_files[i]} - Hash: ${list_of_hashes[i]}" - done + create_csv fi write_log -create_csv -write_log write_data write_log cleanup