#!/bin/bash
#/----------------------------------------------------------------------------------------------\
#|	Summary:			Plot data of getTraceFiles .csv files		
#|	Author: 			Ramón L De Jesús				
#|	Start date:			7/3/2013 10:24am						
#|	Last version:		.0.1								
#\ ---------------------------------------------------------------------------------------------/
#
# This script gets .csv files located on [tracename]-DATA folders
# 	-	Outputs this .csv files in plots
#
#=====================================================
# Note: R and its dependencies must be installed on the computer
# 			Script only works on linux machines
#			Tested on a VMWare running Ubuntu 12.04 LTS 64-bit
#	
#	WARNING: "/Desktop/TraceFiles/nameOfTrace-DATA/ServiceTimes.csv" MUST EXIST!!!
#		 "/Desktop/TraceFiles/nameOfTrace-DATA/TotalCycles.csv" MUST EXIST!!!
#=====================================================

#Want some ScatterPlots?
scatterPlots()
{
	eval clear
	echo "~ S C A T T E R _ P L O T S ~"
	echo ""
	echo ""
	echo "========================"
	echo "Total Cycles Plot"
	echo ""
	eval read -p "Want_this_Scatter_Plot?_[Y/n]:	" scatter
	echo ""
	if test "$scatter" == "y" || test "$scatter" == "Y" || test "$scatter" == ""
	then
		if [ -f $HOME/Desktop/TraceFiles/$traceName-DATA/$traceName-TotalCycles.csv ]
		then 
		
			eval Rscript extra/TotalCycles-ScatterPlot.R $traceName
			eog $HOME/Desktop/TraceFiles/$traceName-DATA/$traceName-TotalCycles-ScatterPlot.png
			echo -e "\e[1;32m>>DONE!\e[00m"
		else
			echo -e "\e[1;31m~/Desktop/TraceFiles/"$traceName"-DATA/"$traceName"-TotalCycles.csv\e[00m Not found!!!"
		fi
	fi
	echo ""
	echo "========================"	
	
	eval scatter=""
	
	echo "========================"
	echo "Service elapsed time Plot"
	echo ""
	eval read -p "Want_this_Scatter_Plot?_[Y/n]:	" scatter
	echo ""
	if test "$scatter" == "y" || test "$scatter" == "Y" || test "$scatter" == ""
	then
		if [ -f $HOME/Desktop/TraceFiles/$traceName-DATA/$traceName-ServiceTimes.csv ]
		then
			eval Rscript extra/ServiceTimes-ScatterPlot.R $traceName
			eog $HOME/Desktop/TraceFiles/$traceName-DATA/$traceName-ServiceTimes-ScatterPlot.png
			echo -e "\e[1;32m>>DONE!\e[00m"
		else
			echo -e "\e[1;31m~/Desktop/TraceFiles/"$traceName"-DATA/"$traceName"-ServiceTimes.csv\e[00m Not found!!!"
		fi
	fi
	echo ""
	echo "========================"
	
}

#Want some HistogramPlots?
histograms()
{
	eval clear
	echo "~ H I S T O G R A M _ P L O T S ~"
	echo ""
	echo ""
	echo "========================"
	echo "Total Cycles histogram"
	echo ""
	eval read -p "Want_this_histogram?_[Y/n]:	" histogram
	echo ""
	if test "$histogram" == "y" || test "$histogram" == "Y" || test "$histogram" == ""
	then
		if [ -f $HOME/Desktop/TraceFiles/$traceName-DATA/$traceName-TotalCycles.csv ]
		then 
		
			eval Rscript extra/TotalCycles-Histogram.R $traceName
			eog $HOME/Desktop/TraceFiles/$traceName-DATA/$traceName-TotalCycles-Histogram.png
			echo -e "\e[1;32m>>DONE!\e[00m"
		else
			echo -e "\e[1;31m~/Desktop/TraceFiles/"$traceName"-DATA/"$traceName"-TotalCycles.csv\e[00m Not found!!!"
		fi
	fi
	echo ""
	echo "========================"	
	
	eval histogram=""
	
	echo "========================"
	echo "Service Times histogram"
	echo ""
	eval read -p "Want_this_histogram?_[Y/n]:	" histogram
	echo ""
	if test "$histogram" == "y" || test "$histogram" == "Y" || test "$histogram" == ""
	then
		if [ -f $HOME/Desktop/TraceFiles/$traceName-DATA/$traceName-ServiceTimes.csv ]
		then 
		
			eval Rscript extra/ServiceTimes-Histogram.R $traceName
			eog $HOME/Desktop/TraceFiles/$traceName-DATA/$traceName-ServiceTimes-Histogram.png
			echo -e "\e[1;32m>>DONE!\e[00m"
		else
			echo -e "\e[1;31m~/Desktop/TraceFiles/"$traceName"-DATA/"$traceName"-ServiceTimes.csv\e[00m Not found!!!"
		fi
	fi
	echo ""
	echo "========================"	
	
	eval histogram=""
}

#Want some DensityPlots?
densityPlots()
{
	eval clear
	echo "~ D E N S I T Y _ P L O T S ~"
	echo ""
	echo ""
	echo "========================"
	echo "Total Cycles densityPlot"
	echo ""
	eval read -p "Want_this_densityPlot?_[Y/n]:	" densityPlot
	echo ""
	if test "$densityPlot" == "y" || test "$densityPlot" == "Y" || test "$densityPlot" == ""
	then
		if [ -f $HOME/Desktop/TraceFiles/$traceName-DATA/$traceName-TotalCycles.csv ]
		then 
		
			eval Rscript extra/TotalCycles-DensityPlot.R $traceName
			eog $HOME/Desktop/TraceFiles/$traceName-DATA/$traceName-TotalCycles-DensityPlot.png
			echo -e "\e[1;32m>>DONE!\e[00m"
		else
			echo -e "\e[1;31m~/Desktop/TraceFiles/"$traceName"-DATA/"$traceName"-TotalCycles.csv\e[00m Not found!!!"
		fi
	fi
	echo ""
	echo "========================"	
	
	eval densityPlot=""
	
	echo "========================"
	echo "Service Times densityPlot"
	echo ""
	eval read -p "Want_this_densityPlot?_[Y/n]:	" densityPlot
	echo ""
	if test "$densityPlot" == "y" || test "$densityPlot" == "Y" || test "$densityPlot" == ""
	then
		if [ -f $HOME/Desktop/TraceFiles/$traceName-DATA/$traceName-ServiceTimes.csv ]
		then 
		
			eval Rscript extra/ServiceTimes-DensityPlot.R $traceName
			eog $HOME/Desktop/TraceFiles/$traceName-DATA/$traceName-ServiceTimes-DensityPlot.png
			echo -e "\e[1;32m>>DONE!\e[00m"
		else
			echo -e "\e[1;31m~/Desktop/TraceFiles/"$traceName"-DATA/"$traceName"-ServiceTimes.csv\e[00m Not found!!!"
		fi
	fi
	echo ""
	echo "========================"	
	
	eval densityPlot=""
}

#Verify parameters
verify()
{	
	name=$1
	if test "$name" == ""
	then		
		echo "Please enter your Tracename:"
		echo ""
		read -p	"[traceName]: " traceName
		if test "$traceName" == "q"
		then
			exit
		fi
	else
		traceName=$name
	fi
	echo ""
	if [ ! -d $HOME/Desktop/TraceFiles/$traceName-DATA/ ]
	then
		echo "No DATA folder in ~/Desktop/TraceFiles/ was found with that name."
		echo "#"
		echo ""
		name=""
		echo ""
		echo "Type \"q\" to exit"
		eval verify
	else
		echo "DATA folder found!" 
		echo "~running plots..."
		eval sleep 2
		eval scatterPlots
		eval histograms
		eval densityPlots
	fi		
}

# Main UI
echo 	"................................................"
echo 	"-Gets .csv files and outputs plots of their data.-"
echo 	""
echo -e	"* Plots will be stored in\e[1;32m" $HOME"/Desktop/TraceFiles/[traceName]-DATA\e[00m"
echo ""
echo ""
eval verify $1
