86 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
set -a
 | 
						|
source .env 2>&1 > /dev/null
 | 
						|
set +a
 | 
						|
 | 
						|
DateTimeStamp=$(date +\%D_\%T)
 | 
						|
 | 
						|
## Functions
 | 
						|
############
 | 
						|
 | 
						|
write_log () {
 | 
						|
#echo "		++ Write to log.
 | 
						|
#		+++++++++++++++"
 | 
						|
	printf '%s	- %s\n' "$DateTimeStamp" "$1"
 | 
						|
}
 | 
						|
 | 
						|
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	
 | 
						|
	write_log "List of files created successfully."
 | 
						|
	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
 | 
						|
	write_log "Files hashed successfully."
 | 
						|
	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_log "CSV Array creation successful."
 | 
						|
}
 | 
						|
 | 
						|
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
 | 
						|
	write_log "$temp_csv_file written successfully."
 | 
						|
}
 | 
						|
 | 
						|
cleanup () {
 | 
						|
	write_log "Cleanup completed successfully."
 | 
						|
}
 | 
						|
 | 
						|
## Main
 | 
						|
#######
 | 
						|
 | 
						|
trap cleanup EXIT
 | 
						|
 | 
						|
echo "Main Start"
 | 
						|
create_list_of_files
 | 
						|
hash_files
 | 
						|
if [ ${#list_of_files[@]} != ${#list_of_hashes[@]} ];then
 | 
						|
	echo "Error! Number of files and hashes differs. Exiting..." && exit
 | 
						|
else
 | 
						|
	create_csv
 | 
						|
fi
 | 
						|
write_data
 | 
						|
cleanup
 | 
						|
 | 
						|
#while $list_of_files >=1; do
 | 
						|
#done
 | 
						|
 | 
						|
 |