#!/bin/sh

PATH="/usr/libexec/alterator-x11:$PATH"

MONITORSDB=/usr/share/hwdatabase/MonitorsDB

fix_monitor_name()
{
    sed 's,",,g' $1
}

read_eisa()
{
	grep "eisa:"|
		sed -r 's,eisa:[[:space:]]*(.*),\L\1,'|
		fix_monitor_name
}

read_monitorname()
{
	grep "monitorname:"|
		sed -r 's,monitorname:[[:space:]]*(.*),\1,'|
		fix_monitor_name |
		tr '\n' ' '
}

ddcout="$(ddcdump 2>/dev/null)"

eisa="$(echo "$ddcout"|read_eisa)"
monitor_name="$(echo "$ddcout"|read_monitorname)"

extract_name()
{
        cut -f2 -d';'| sed -r 's,[[:space:]]*(.*),\1,'
}

monitors_db()
{
    fix_monitor_name "$MONITORSDB"
}

find_by_eisa()
{
	[ -n "$eisa" ] && monitors_db|egrep -i "^[^;]+;[^;]+;[[:space:]]*$eisa;"
}

find_by_name()
{
	[ -n "$monitor_name" ] && monitors_db|egrep -i "^[^;]+;[[:space:]]*$monitor_name;"
}

plain_name()
{
    if  [ -n "$monitor_name" ]; then
	echo "vendor;$monitor_name"
    elif [ -n "$eisa" ]; then
	echo "vendor;$eisa"
    fi
}

{ find_by_eisa || find_by_name || plain_name; } | extract_name
