#!/bin/bash

#sleep 60

#redirect all output to syslog
exec 1> >(logger -s -t $(basename $0)) 2>&1

# Set framebuffer to monitor's preferred resolution

if [ ! -z "$(get_eep DISABLE_FB)" ];then
    echo "$0 is disabled by config"
    initctl --quiet start omgmenu 2>/dev/null >/dev/null
    exit 0
fi 

s=$(dmidecode -t 1 | grep "Serial Number: VMware")
if [ "x${s}" != "x" ] ; then
    echo "$0 don't run on officeMaster Gate VMWARE"
    initctl --quiet start omgmenu 2>/dev/null >/dev/null
    exit 0
fi

#no graphic mode on Advanced R1
if lspci -n | grep -q -c "1011:f005"; then 
    if dmidecode -s processor-frequency | grep -q '1600'; then
        echo "$0 don't run on officeMaster Gate Advanced R1"
        initctl --quiet start omgmenu 2>/dev/null >/dev/null
        exit 0
    fi
fi

OSType=$(omgsysteminfo --val --filter=os.name)
CPU=$(cat /proc/cpuinfo |grep -m 1 'model name.*:'| sed -e 's/Intel(R)//'|sed -e 's/  / /g'|cut -d ' ' -f 3|cut -d '(' -f 1)
consoledev=tty1	

if [ "$OSType" = "ubuntu" ]; then
    
    if [ "${CPU}" = "Geode" ]; then
        consoledev=ttyS0
    fi
    if grep -q '/usr/bin/omgmenu' /etc/init/${consoledev}.conf; then
        menuenabled=1
    fi
    
else
    
    if grep -q "ACTIVE_CONSOLES=/dev/tty.2-" /etc/sysconfig/init; then
        menuenabled=1
    fi
fi


if [ "${menuenabled}" = "1" ]; then
    if which monitor-get-edid >/dev/null 2>/dev/null; then
        if which monitor-parse-edid >/dev/null 2>/dev/null; then
            if which fbset >/dev/null 2>/dev/null; then
                res=$(monitor-get-edid|monitor-parse-edid | grep -A 1 "Monitor preferred modeline"| tail -1| cut -d ' ' -f 2| tr -d '"')
                xr=$(echo ${res}| cut -f 1 -dx)
                yr=$(echo ${res}| cut -f 2 -dx)
                test -z "${xr}" && xr=1024
                test -z "${yr}" && yr=796
                if [ ! -z "$(pgrep omgmenu)" ]; then
                    
                    initctl stop omgmenu 2>/dev/null >/dev/null
                    let free=0
                    for i in $(seq 1 5);do
                        if lsof | grep -q "/dev/${consoledev}"; then
                            sleep 3
                        else
                            let free=1
                            break
                        fi
                    done
                    if [ ${free} -eq 0 ]; then
                        echo "$0 Error: Can't stop omgmenu. Will not set display"
                        exit 1
                    fi
                fi                
                #echo "$0 fbset -a -xres ${xr} -yres ${yr}"
                
                fbset -a -xres ${xr} -yres ${yr}
                echo -e "\e[1;1H\e[2J" >/dev/${consoledev}
                initctl start omgmenu 2>/dev/null >/dev/null
                exit 0
            fi
        fi
    fi
    
    initctl --quiet start omgmenu 2>/dev/null >/dev/null
    
fi


