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

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

[ -z "$1" ] && exit 1

TCEMENU=/usr/local/tce.jwm
OUTFILE=/tmp/menu.tmp
> "$OUTFILE"

# Check for freedesktop item
FREEDESK="/usr/share/applications"
if [ -e "$FREEDESK"/"$1".desktop ]; then
  if [ -e "$FREEDESK"/"$1"~1.desktop ]; then
    echo "<Menu 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" "TCE_END" > /tmp/newmenu
  sudo mv /tmp/newmenu "$TCEMENU"
fi

# Check for freedesktop item
FREEDESK="/usr/local/share/applications"
if [ -e "$FREEDESK"/"$1".desktop ]; then
  if [ -e "$FREEDESK"/"$1"~1.desktop ]; then
    echo "<Menu 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" "TCE_END" > /tmp/newmenu
  sudo mv /tmp/newmenu "$TCEMENU"
fi

jwm -reload

