#!/bin/bash
### DEFAULTS BY HOST ###
divLine="\n###########################################\n";
csvDelim="~!~";
csvDelim="<>";
hostName=`hostname`;
debugFlg="";
#HOME=/"Users/rbutare";
HOME="$HOME/";
I="$HOME/public_html/jamwed/phpGallery/";
J="$HOME/public_html/jamwed/common/";
L="$HOME/public_html/jamwed/common/loginRegister";
O="$HOME/public_html/ourlifeinpics.com/";
T="$HOME/public_html/ourlifeinpics.com/wip/newTmpl/baseTemplate3";
l="$HOME/public_html/ourlifeinpics.com/life";
o="$HOME/public_html/ourlifeinpics.com/";
s="$HOME/.vim/snippets";
dataDir="$HOME/lbin";
dataFile="$dataDir/tips.csv";
attachDir="$dataDir/tipsAttachments/";
if [ "$hostName"  = "macBookHighSierra.local" ]
then
	echo "*** HOSTNAME: $hostName ***";
	C="/Library/Webserver/Documents/common";
elif [ "$hostName" = "ecbiz173.inmotionhosting.com" ]
	C="$HOME/public_html/ourlifeinpics.com/common";
then
	echo "*** REMOTE HOSTNAME: $hostName ***";
else
	echo "*** ELSE HOSTNAME: $hostName ***";
fi	

### HELP/USAGE ###
USAGE="$0 [ad] [directory] fileName";
helpFile="$HOME/lbin/$0Help.txt";

usage() {
cat << EOF
usage: $0 options

Search/Add/Change - tips information

OPTIONS:
   -d      Debug
   -h      Show this Help message
   -l			 List all all attacment records
   -m      Find all missing Records for the attachment (Attachment without tip/Record)
   -x      Tail last n records

   USAGE: 
	   $0  -l     - list all attachment records
	   $0 -m      - Find all Attachments missing Tips Records
	   $0 -m      - find attach1/2 Tips Records
EOF
	if [ -f "$helpFile" ]
	then
		cat $helpFile
	fi
} # /usage

### FUNCTIONS ###
getHTML() {
    if [ ! -f "$dataFile" ]
    then
        echo "ERROR: FILE: $dataFile DOES NOT EXIST!!";
        exit 1;
    else
        #egrep "$1|^#" $dataFile | awk '/^#/ {comment = comment $0} /^snippet/ {print $0 "\t\t" comment; comment=""}'
        #egrep "$1" $dataFile | sed "s/<>/,/g" | awk '   {print $1 "\t\t" }';
        #egrep "$1" $dataFile |  awk 'BEGIN {FS="<>"}   {print "ID: $1 \nCAT: " $2}';
        #egrep "$1" $dataFile |  awk 'BEGIN {FS="<>"} {printf("ID: %-20s\nCat: %-20s\nSubCat: %-20s\nSubSubCat: %-20s\nTitle: %-20s\nDescription: %-20s\nMoreInfo: %-20s\nComments: %-20s\nLinks: %-20s\nTAGS: %-20s\n", $1,$2,$3,$4,$5,$6,$7,$8,$9,$10)};';
				
				html1	html1	
				htmlbs=' <!DOCTYPE html> <html lang="en"> <head> <title>Bootstrap 4 Example</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container">';
  line1='<h1>My First Bootstrap Page</h1> <p>This is some text.</p> </div> </body> </html> '	;
				egrep "$1" $dataFile |  awk 'BEGIN {FS="<>"} {\
				printf( "%-15s %s\n", "ID:", $1); \
				printf( "%-15s %s\n", "CAT:", $2); \
				printf( "%-15s %s\n", "SUBCAT:", $3); \
				printf( "%-15s %s\n", "SUBSUBCAT:", $4); \
				printf( "%-15s %s\n", "TITLE:", $5); \
				printf( "%-15s %s\n", "DESC:", $6); \
				printf( "%-15s %s\n", "MORE INFO:", $7); \
				printf( "%-15s %s\n", "COMMENTS:", $8); \
				printf( "%-15s %s\n", "LINKS:", $9); \
				printf( "%-15s %s\n\n", "TAGS:", $10); \
			}';# | sed "s/<br>//g";

    fi
		return 0;
	#convert output to html
} #/getHTML
getInfo() {
    if [ ! -f "$dataFile" ]
    then
        echo "ERROR: FILE: $dataFile DOES NOT EXIST!!";
        exit 1;
    else
        #egrep "$1|^#" $dataFile | awk '/^#/ {comment = comment $0} /^snippet/ {print $0 "\t\t" comment; comment=""}'
        #egrep "$1" $dataFile | sed "s/<>/,/g" | awk '   {print $1 "\t\t" }';
        #egrep "$1" $dataFile |  awk 'BEGIN {FS="<>"}   {print "ID: $1 \nCAT: " $2}';
        #egrep "$1" $dataFile |  awk 'BEGIN {FS="<>"} {printf("ID: %-20s\nCat: %-20s\nSubCat: %-20s\nSubSubCat: %-20s\nTitle: %-20s\nDescription: %-20s\nMoreInfo: %-20s\nComments: %-20s\nLinks: %-20s\nTAGS: %-20s\n", $1,$2,$3,$4,$5,$6,$7,$8,$9,$10)};';
				
				egrep "$1" $dataFile |  awk 'BEGIN {FS="<>"} {\
				printf( "%-15s %s\n", "ID:", $1); \
				printf( "%-15s %s\n", "CAT:", $2); \
				printf( "%-15s %s\n", "SUBCAT:", $3); \
				printf( "%-15s %s\n", "SUBSUBCAT:", $4); \
				printf( "%-15s %s\n", "TITLE:", $5); \
				printf( "%-15s %s\n", "DESC:", $6); \
				printf( "%-15s %s\n", "MORE INFO:", $7); \
				printf( "%-15s %s\n", "COMMENTS:", $8); \
				printf( "%-15s %s\n", "LINKS:", $9); \
				printf( "%-15s %s\n\n", "TAGS:", $10); \
			}';# | sed "s/<br>//g";

    fi
		return 0;
}

### COMMAND LINE ###

while getopts "hl" OPTION
do
     case $OPTION in
			 l| L)
				#list all attachments
				allAttachments=`ls $attachDir/*`;
				#allAttachments=`ls /Users/rbutare/lbin/tipsAttachments/*`;
				
				for attachment in $allAttachments
				do
					attachId=`basename $attachment`;
					echo "Looking for: $attachId";
					data=`grep "$attachId$csvDelim" $dataFile`;
					#echo "Data: $data";

					if [ -z "$data" ]
					then
					#	echo "Looking for $attachId....";
						getInfo $data
					else
						echo "***** ERROR: NO RECORD FOUND FOR $attachId *****";
					fi
				done
				exit 0;
				;;
			 h| H)
        usage
				cmdText=" Show Help Information "
				echo "$divLine $cmdText: $divLine"
				cat $helpFile
				exit 97;
				;;
			?)
				#Default no special options
				#invalid options
				cmdNum=0;
				cmdText=" ERROR: Unknown command !! "
				echo "HERE: INVALID OPTION: $OPTION";
        usage
        exit
        ;;
     esac
done

### VALIDATE ARGUMENTS AFTER OPTIONS
#get Files Passed  shift passed options
shift $(($OPTIND - 1))
files="$@"
echo "FILES PASSED: $files";

### ERRORS ###

## if [ $# = 0 ] ;
## then
	## echo "Help";
	## usage;
	## exit 1;
## fi


if [ "$debugFlg" = "1" ] 
then
	echo "TEST=$TEST SERVER=$SERVER PASSWD=$PASSWD";
fi
### CODE ###
#find csv record attachment belongs to
for attachment in $*
do
	attachId=`basename $attachment`;
	echo "1Looking for: $attachId";
	data=`grep "$attachId$csvDelim" $dataFile`;
	#FUTURE _ MATCH ON LINKS FIELD ONLY
	#BUGS NOT WORKING ON -L GETS ALL FILES
	if [ -z "$data" ]
	then
		echo "***** ERROR: NO TIPS RECORD FOUND FOR ATTCHMENT:  $attachId *****";
	else
		getInfo $data
	fi
done
