#!/bin/sh
# Original hackbox_makemenu (c) Robert Shingledecker 2009
# Adapted to Icewm by Jason W

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

[ "$USER" == "root" ] && exit 1
[ -z "$1" ] && exit 1
WM_MENU=/home/"$USER"/.icewm/menu
OUTFILE=/tmp/menu.tmp
> "$OUTFILE"

# Check for freedesktop item                       
FREEDESK="/usr/share/applications"
if [ -s "$FREEDESK"/"$1".desktop ]; then                        
  if [ -s "$FREEDESK"/"$1"~1.desktop ]; then
    echo "menu \""$1"\" folder {" > "$OUTFILE"
    for F in $(ls "$FREEDESK"/* | grep -E "$1"'(~[1-9][1-9]*)*'.desktop); do
      writeMenuItem "$F" >> "$OUTFILE"
    done
    echo "}" >> "$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 "Settings" "$FREEDESK"/"$1".desktop > /dev/null 2>&1; then
      writeMenuItem  "$FREEDESK"/"$1".desktop >> "$OUTFILE"
    fi
    
  fi
  merge "$OUTFILE" "$WM_MENU" "End Applications" > /tmp/newmenu
  mv /tmp/newmenu "$WM_MENU"
fi          

FREEDESK="/usr/local/share/applications"
if [ -s "$FREEDESK"/"$1".desktop ]; then                        
  if [ -s "$FREEDESK"/"$1"~1.desktop ]; then
    echo "menu \""$1"\" folder {" > "$OUTFILE"
    for F in $(ls "$FREEDESK"/* | grep -E "$1"'(~[1-9][1-9]*)*'.desktop); do
      writeMenuItem "$F" >> "$OUTFILE"
    done
    echo "}" >> "$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; then
      writeMenuItem  "$FREEDESK"/"$1".desktop >> "$OUTFILE"
    fi
  fi
  merge "$OUTFILE" "$WM_MENU" "End Applications" > /tmp/newmenu
  mv /tmp/newmenu "$WM_MENU"
fi          
