#!/bin/bash
#pRun 1.0
#Functions
#Copyright 2013 GPL3
#Roger Grider (radky)

case "$1" in
#Search
-prun_search)
	searchALL=`cat $WORKDIR/preferences/search_all`
	if [ "$searchALL" = "true" ]; then
	 searchMODE=""
	else
	 searchMODE="^"
	fi
	searchPATTERN="`grep -Ei "$searchMODE$entryPRUNAPP" /tmp/PR-search`"
	if [ "$searchPATTERN" ]; then
	 echo "$searchPATTERN" | sort -fu > /tmp/PR-apps #updated /tmp/PR-apps
	else
	 echo > /tmp/PR-apps
	fi
	;;

#Launch
-button_launch)
	TERMINAL=`cat $WORKDIR/preferences/terminal_launch`
	PRUNAPP=`cat /tmp/PR-selectedAPP`
	[ ! "`which $PRUNAPP`" ] && Xdialog --title Alert --msgbox "\n          – ERROR –          \n\n          Please select item!          \n" 0 0
	  if [ "$TERMINAL" = "true" ]; then
	    if [ "$CLOSE_TERMINAL" = "true" ]; then
	      $TERM -e "$PRUNAPP" &
	    else
	      echo '#!/bin/sh' > /tmp/Terminal
	      echo "$PRUNAPP"  >> /tmp/Terminal
	      echo 'echo' >> /tmp/Terminal
	      echo 'echo -n "PRESS ENTER KEY TO CLOSE TERMINAL... "' >> /tmp/Terminal
	      echo 'read fauxhold' >> /tmp/Terminal
	      chmod +x /tmp/Terminal
	      exec $TERM -e /tmp/Terminal &
	    fi
	  else
	   "$PRUNAPP" &
	  fi
	  echo -e "$PRUNAPP" >> $WORKDIR/PR-history #add menu item to launch history
	  tac $WORKDIR/PR-history | awk '!a[$0]++' | tac | sed '/^$/d' | tail -$HISTORY_ITEMS > /tmp/tmpfile ; mv -f /tmp/tmpfile $WORKDIR/PR-history #remove duplicate menu items and blank lines in launch history
	  if [ "$CLOSE_PRUN" = "true" ]; then
	   prunPID=`ps | grep -E 'PRUN_DIALOG|prun' | grep -v grep | awk '{print $1}'`
	   kill -9 $prunPID
	  fi
	;;

-entry_launch)
	TERMINAL=`cat $WORKDIR/preferences/terminal_launch`
	PRUNAPP=`head -n 1 /tmp/PR-apps 2>/dev/null`
	PRUNAPP2=`cat /tmp/PR-selectedAPP`
	if [ "`echo "$PRUNAPP2" | grep -E ' '`" = "" ]; then #no spaces in application name
	  if [ "`which $PRUNAPP`" ]; then
	   if [ "$TERMINAL" = "true" ]; then
	    if [ "$CLOSE_TERMINAL" = "true" ]; then
	      $TERM -e $PRUNAPP &
	    else
	      echo '#!/bin/sh' > /tmp/Terminal
	      echo "$PRUNAPP"  >> /tmp/Terminal
	      echo 'echo' >> /tmp/Terminal
	      echo 'echo -n "PRESS ENTER KEY TO CLOSE TERMINAL... "' >> /tmp/Terminal
	      echo 'read fauxhold' >> /tmp/Terminal
	      chmod +x /tmp/Terminal
	      exec $TERM -e /tmp/Terminal &
	    fi
	   else
	    $PRUNAPP &
	   fi
	   echo -e "$PRUNAPP" >> $WORKDIR/PR-history #add menu item to launch history
	   tac $WORKDIR/PR-history | awk '!a[$0]++' | tac | sed '/^$/d' | tail -$HISTORY_ITEMS > /tmp/tmpfile ; mv -f /tmp/tmpfile $WORKDIR/PR-history #remove duplicate menu items and blank lines in launch history
	   if [ "$CLOSE_PRUN" = "true" ]; then
	    prunPID=`ps | grep -E 'PRUN_DIALOG|prun' | grep -v grep | awk '{print $1}'`
	    kill -9 $prunPID
	   fi
	  else
	   Xdialog --title Alert --msgbox "\n          ""– $entryPRUNAPP –""          \n\n          File not found!          \n" 0 0
	  fi
	else #spaces in application name
	  if [ "$TERMINAL" = "true" ]; then
	    if [ "$CLOSE_TERMINAL" = "true" ]; then
	      $TERM -e ""$PRUNAPP2"" &
	    else
	      echo '#!/bin/sh' > /tmp/Terminal
	      echo """$PRUNAPP2"""  >> /tmp/Terminal
	      echo 'echo' >> /tmp/Terminal
	      echo 'echo -n "PRESS ENTER KEY TO CLOSE TERMINAL... "' >> /tmp/Terminal
	      echo 'read fauxhold' >> /tmp/Terminal
	      chmod +x /tmp/Terminal
	      exec $TERM -e /tmp/Terminal &
	    fi
	  else
	   ""$PRUNAPP2"" &
	  fi
	  echo -e "$PRUNAPP2" >> $WORKDIR/PR-history #add menu item to launch history
	  tac $WORKDIR/PR-history | awk '!a[$0]++' | tac | sed '/^$/d' | tail -$HISTORY_ITEMS > /tmp/tmpfile ; mv -f /tmp/tmpfile $WORKDIR/PR-history #remove duplicate menu items and blank lines in launch history
	  if [ "$CLOSE_PRUN" = "true" ]; then
	   prunPID=`ps | grep -E 'PRUN_DIALOG|prun' | grep -v grep | awk '{print $1}'`
	   kill -9 $prunPID
	  fi
	fi
	;;

-history_launch) #launch app via history module
	TERMINAL=`cat $WORKDIR/preferences/terminal_launch`
	PRUNAPP=`cat /tmp/PR-hxAPP`
	if [ "`echo "$PRUNAPP" | grep -E ' '`" = "" ]; then #no spaces in application name
	  if [ "`which $PRUNAPP`" ]; then
	   if [ "$TERMINAL" = "true" ]; then
	    if [ "$CLOSE_TERMINAL" = "true" ]; then
	      $TERM -e $PRUNAPP &
	    else
	      echo '#!/bin/sh' > /tmp/Terminal
	      echo "$PRUNAPP"  >> /tmp/Terminal
	      echo 'echo' >> /tmp/Terminal
	      echo 'echo -n "PRESS ENTER KEY TO CLOSE TERMINAL... "' >> /tmp/Terminal
	      echo 'read fauxhold' >> /tmp/Terminal
	      chmod +x /tmp/Terminal
	      exec $TERM -e /tmp/Terminal &
	    fi
	   else
	    $PRUNAPP &
	   fi
	   echo -e "$PRUNAPP" >> $WORKDIR/PR-history #add menu item to launch history
	   tac $WORKDIR/PR-history | awk '!a[$0]++' | tac | sed '/^$/d' | tail -$HISTORY_ITEMS > /tmp/tmpfile ; mv -f /tmp/tmpfile $WORKDIR/PR-history #remove duplicate menu items and blank lines in launch history
	   if [ "$CLOSE_PRUN" = "true" ]; then
	    prunPID=`ps | grep -E 'PRUN_DIALOG|prun' | grep -v grep | awk '{print $1}'`
	    kill -9 $prunPID
	   fi
	  else
	   entryPRUNAPP="ERROR"
	   Xdialog --title Alert --msgbox "\n          ""– $entryPRUNAPP –""          \n\n          Please select item!          \n" 0 0
	  fi
	else #spaces in application name
	  if [ "$TERMINAL" = "true" ]; then
	    if [ "$CLOSE_TERMINAL" = "true" ]; then
	      $TERM -e ""$PRUNAPP"" &
	    else
	      echo '#!/bin/sh' > /tmp/Terminal
	      echo """$PRUNAPP"""  >> /tmp/Terminal
	      echo 'echo' >> /tmp/Terminal
	      echo 'echo -n "PRESS ENTER KEY TO CLOSE TERMINAL... "' >> /tmp/Terminal
	      echo 'read fauxhold' >> /tmp/Terminal
	      chmod +x /tmp/Terminal
	      exec $TERM -e /tmp/Terminal &
	    fi
	  else
	   ""$PRUNAPP"" &
	  fi
	  echo -e "$PRUNAPP" >> $WORKDIR/PR-history #add menu item to launch history
	  tac $WORKDIR/PR-history | awk '!a[$0]++' | tac | sed '/^$/d' | tail -$HISTORY_ITEMS > /tmp/tmpfile ; mv -f /tmp/tmpfile $WORKDIR/PR-history #remove duplicate menu items and blank lines in launch history
	  if [ "$CLOSE_PRUN" = "true" ]; then
	   prunPID=`ps | grep -E 'PRUN_DIALOG|prun' | grep -v grep | awk '{print $1}'`
	   kill -9 $prunPID
	  fi
	fi
	;;
esac