#!/bin/bash
search="$1"
#check Options

if [[ $1 == "-f" ]]; then
	#statements
	# look in files only
	dataFiles="/rrbOut/#.FILES"
	search="$2"
	echo "Looking for FILE: $search in $dataFiles"
	#check Options
	echo "Looking for FILE: $search in $dataFiles" > /rrbOUT/fileOUT
	grep -i $search  $dataFiles >> /rrbOUT/fileOUT
	more /rrbOUT/fileOUT
elif [[ $1 == "-d" ]]; then
	#statements
	# look in directories only
	dataFiles="/rrbOut/#DIR"
	search="$2"
	echo "Looking for DIRECTORY: $search in $dataFiles"
	echo "Looking for DIRECTORY: $search in $dataFiles" > /rrbOUT/dirOUT
	#check Options
	grep -i $search  $dataFiles >> /rrbOUT/dirOUT
	more /rrbOUT/dirOUT
	#A - update Both Directories and Files
	#D - update Directorie Only
	#F - update Files Only
elif  [[ $1 == "-A" ]] || [[ $1 == "-F" ]] || [[ $1 == "-D" ]] ; then
	#make sure logged in as root
	id=$(id) ;
	case $id in
		*root*) 
			echo "logged in as root"
			;;
		*)
			echo "### ERROR: MUST BE LOGGED IN AS ROOT #####"
			exit
			;;
	esac
	#Reload the search files
echo "Reload all Files and DIRectories! Must run as ROOT!!"
	cd /
	specialDIRs="/Users/rbutare "
	#dirs=${specialDIRs}" $(ls /)"
	dirs="$(ls /) ${specialDIRs}"
	outFilesBase="/rrbOUT/";
	outFilesLog="/rrbOUT/logSkip.out";
	#store date at start of run
	date > ${outFilesLog}
	for dir in $dirs ; do
		case $dir in
			\.* | 'lost+found' | 'rrbOUT' | 'Volumes' )
				#Skip files
				echo "$dir - Skip" >> ${outFilesLog};
				;;
		*)
			dirNew=`echo $dir | sed "s/\///g"`;
			dirLog=${outFilesBase}"log.DIR";
			fileLog=${outFilesBase}"log.FILES";
			if  [[ $1 == "-A" ]] || [[ $1 == "-F" ]] ; then
				#Findall Files
				outFile="${outFilesBase}${dirNew}.FILES"
				echo "##### START FILES ###" > $fileLog;
				date >> ${fileLog}
				echo "Working on: $dir in ${outFile}";
				find $dir -type f -print > "${outFile}" #2&>${fileLog}
				echo "##### END FILES ###" >> ${fileLog}
			elif  [[ $1 == "-A" ]] || [[ $1 == "-D" ]] ; then
				#Findall Directories
				dirNew=`echo $dir | sed "s/\///g"`;
				outFile="${outFilesBase}${dirNew}.DIR"
				echo "##### START DIR ###" > ${dirLog};
				date >> ${dirLog};
				echo "XXWorking on: $dir in ${outFile}";
				find $dir -type d -print > ${outFile} #2&>${dirLog}
				echo "##### END DIR ###" >> ${dirLog}
			fi
			if [[ $1 == "-r" ]]; then
				#Update Both Directories and Files found
				dirLog=${outFilesBase}"log.DIR";
				fileLog=${outFilesBase}"log.FILES";
				outFile="${outFilesBase}${dirNew}"
				echo "Working on: $dir" in $outFile.FILES $outFile
				find $dir -type f -print > ${outFile}.FILES #2&> ${fileLog}
				find $dir -type d -print > ${outFile}.DIR #2&> ${dirLog}
			fi
               		 ;;
                   esac
	done
else
	echo "#### 1=$1 2=$2 3=$3"
	echo "USAGE: $0 [-f|d ] [-F | -D ]searchString";
fi
