#!/bin/bash

### Localization ###
TEXTDOMAINDIR=/usr/share/locale
TEXTDOMAIN=translate-menus-antix

CURRENT_GTK_ICON_THEME="$(grep "gtk-icon-theme-name=" "$GTK2_RC_FILES" | awk -F'"' '{print $2}')"
CURRENT_WM="$DESKTOP_SESSION_WM"
FALLBACK_ICON_THEME="/usr/share/icons/papirus-antix"
GTK_ICON_PATH="/usr/share/icons/$CURRENT_GTK_ICON_THEME"
GTK_ICON_PATH="${GTK_ICON_PATH:-${FALLBACK_ICON_THEME}}"

# All menu entries that can be translated
TERMINAL=$"Terminal"
FILE_MANAGER=$"File Manager"
WEB_BROWSER=$"Web Browser"
TEXT_EDITOR=$"Editor"
APP_SELECT=$"App Select"
PERSONAL=$"Personal"
APPLICATIONS=$"Applications"
RECENT_FILES=$"Recent Files"
RECENT_FILES_LIST=$"Recent Files List"
RECENT_CHANGE_NUMBER=$"Change number of files to show"
RECENT_CLEAR_HISTORY=$"Clear Recent File History"
REFRESH=$"Refresh Menu"
DESKTOP=$"Desktop"
OTHER_DESKTOPS=$"Other Desktops"
DESKTOP_FOLDER=$"Desktop Folder"
CHANGE_DESKTOP=$"Other Desktops"
ROX_PANEL_SWITCH=$"RoxPanel on/off"
CONKY_SWITCH=$"Conky on/off"
KILL_APP=$"App Killer"
CONTROL_CENTRE=$"Control Centre"
HELP=$"Help"
ANTIX_VIDEOS=$"antiX Videos"
ANTIX_FAQ=$"antiX FAQ"
ANTIX_LIVE_HOWTO=$"antiX-live How-To"
ROX_MANUAL=$"Rox Manual"
ANNOUNCEMENTS=$"Announcements"
ANTIX_WIKI=$"antiX Wiki"
FLUXBOX_DOCS=$"Docs"
FLUXBOX_FAQS=$"FAQ"
FLUXBOX_WIKI=$"Fluxbox Wiki"
ICEWM_FAQ=$"IceWM FAQ"
ICEWM_MANUAL=$"IceWM Manual"
JWM_HOMEPAGE=$"Homepage"
ARCH_WIKI=$"Arch Wiki"
FIREWALL=$"Firewall"
PARTIMAGE=$"Partimage"
MAN_PAGES=$"Man Pages"
RUN=$"Run"
FLUXBOX_SETTINGS=$"Fluxbox Settings"
CONFIGURATION=$"Configuration"
STYLES=$"Styles"
FLUXBOX_STYLES=$"Fluxbox Styles"
WORKSPACES=$"Workspaces"
RECONFIGURE=$"Reconfigure"
RESTART=$"Restart"
EXIT=$"Exit"
ANTIX_INSTALLER=$"antiX Installer"

source_menus(){
    local WM_OBJECT
    WM_OBJECT="${1}"
    
    # source
    . /usr/share/antiX/localisation/${WM_OBJECT}.template
}

menu_backup(){
    local WM_OBJECT WM_PATH WM_BACKUP
    WM_OBJECT="${1}"
    WM_PATH="$HOME/.${WM_OBJECT}"
    WM_BACKUP="$WM_PATH/backup"
    
    if [ ! -d "$WM_BACKUP" ]; then
        mkdir "$WM_BACKUP"
    fi
    
    # Make the backup of the menu
    cp "$WM_PATH/menu" "$WM_BACKUP/menu.$(date +%+4Y-%m-%d-%H:%M:%S)"
}

fix_menus(){
    # Remove app-select if not installed
    if [ ! -x "/usr/local/bin/app-select" ]; then
        sed -i "/${APP_SELECT}/d" "$WM_MENU_PATH"
    fi
    
    # Remove minstall
    #~ if [ ! -x "/usr/sbin/minstall" ]; then
        sed -i "/${ANTIX_INSTALLER}/d" "$WM_MENU_PATH"
    #~ fi
}

# If not running desktop-session, exit
if [ -z "$CURRENT_WM" ]; then
    exit 1
elif [ "$CURRENT_WM" = "fluxbox" ] && [ -r "/usr/share/antiX/localisation/fluxbox.template" ]; then
    # make backup
    menu_backup "fluxbox"
    
    # source fluxbox template
    WM_MENU_PATH="$HOME/.fluxbox/menu"
    source_menus "fluxbox"
    
    # fix menus and remove non active elements
    fix_menus
    
elif [ "$CURRENT_WM" = "icewm" ] && [ -r "/usr/share/antiX/localisation/icewm.template" ]; then
    # make backup
    menu_backup "icewm"
    
    # source fluxbox template
    WM_MENU_PATH="$HOME/.icewm/menu"
    source_menus "icewm"
    
    # fix menus and remove non active elements
    fix_menus
elif [ "$CURRENT_WM" = "jwm" ] && [ -r "/usr/share/antiX/localisation/jwm.template" ]; then
    # make backup
    menu_backup "jwm"
    
    # source fluxbox template
    WM_MENU_PATH="$HOME/.jwm/menu"
    source_menus "jwm"
    
    # fix menus and remove non active elements
    fix_menus
fi

gksu "desktop-menu --write-out-global"
