#!/bin/sh
# (c) Robert Shingledecker 2009, 2010
# Typically called from /usr/bin/desktop.sh
# makemenu APPNAME

. /etc/init.d/tc-functions
. /usr/local/bin/openbox_menu_common

[ -z "$1" ] && exit 1
TCEMENU=/usr/local/tce.openbox.xml
OUTFILE=/tmp/menu.tmp
> "$OUTFILE"

# Check for freedesktop item                       
FREEDESK="/usr/local/share/applications"
if [ "$1" != "obconf" ] && [ -e "$FREEDESK"/"$1".desktop ]; then                        
  if [ -e "$FREEDESK"/"$1"~1.desktop ]; then
    echo "<menu id=\"$1\" label=\"$1\">" > "$OUTFILE"
    for F in $(ls "$FREEDESK"/* | grep -E "$1"'(~[1-9][1-9]*)*'.desktop); do
      writeMenuItem "$F" >> "$OUTFILE"
    done
    echo "</menu>" >> "$OUTFILE"
  else
    if ! grep "NotShowIn" "$FREEDESK"/"$1".desktop > /dev/null 2>&1 && ! grep "OnlyShowIn" "$FREEDESK"/"$1".desktop > /dev/null 2>&1 && ! grep "NoDisplay=true" "$FREEDESK"/"$1".desktop > /dev/null 2>&1 ! grep "Categories=" | grep "Settings" "$FREEDESK"/"$1".desktop > /dev/null 2>&1 ; then
      writeMenuItem  "$FREEDESK"/"$1".desktop >> "$OUTFILE"
    fi
  fi
  merge "$OUTFILE" "$TCEMENU" "END_TCE" > /tmp/newmenu
  sudo mv /tmp/newmenu "$TCEMENU"
fi          

# Check for freedesktop item                       
FREEDESK="/usr/share/applications"
if [ "$1" != "obconf" ] && [ -e "$FREEDESK"/"$1".desktop ]; then                        
  if [ -e "$FREEDESK"/"$1"~1.desktop ]; then
    echo "<menu id=\"$1\" label=\"$1\">" > "$OUTFILE"
    for F in $(ls "$FREEDESK"/* | grep -E "$1"'(~[1-9][1-9]*)*'.desktop); do
      writeMenuItem "$F" >> "$OUTFILE"
    done
    echo "</menu>" >> "$OUTFILE"
  else
    if ! grep "NotShowIn" "$FREEDESK"/"$1".desktop > /dev/null 2>&1 && ! grep "OnlyShowIn" "$FREEDESK"/"$1".desktop > /dev/null 2>&1 && ! grep "NoDisplay=true" "$FREEDESK"/"$1".desktop > /dev/null 2>&1 ! grep "Categories=" | grep "Settings" "$FREEDESK"/"$1".desktop > /dev/null 2>&1 ; then
      writeMenuItem  "$FREEDESK"/"$1".desktop >> "$OUTFILE"
    fi
  fi
  merge "$OUTFILE" "$TCEMENU" "END_TCE" > /tmp/newmenu
  sudo mv /tmp/newmenu "$TCEMENU"
fi 