#!/bin/bash

READER_CONF_D=/etc/reader.conf.d

if [[ ! -d $READER_CONF_D/type ]]
then
    echo "$(basename $0): no dir '$READER_CONF_D/type'"
    exit 1;
fi

devname_regex='^DEVICENAME[[:space:]]\+\(.\+\)$'

function conf_processing()
{
    pushd $READER_CONF_D >/dev/null
    local typed_conf=$1
    local mode=$2
    if [[ ! -e "$typed_conf" ]]
    then
        echo "No conf file '$typed_conf'"
        return 1
    fi
    local devname=$(sed -n "s/$devname_regex/\1/p" $typed_conf)
    echo "Current location: $READER_CONF_D"
    echo "Device name is '$devname'"
    if [[ -e "$devname" || "x$mode" == "xforce" ]]
    then
        cp -v $typed_conf vscard
        [[ 0 != $? ]] && return 2
    else
        echo "Device name '${devname}' does not exist"
        if [[ -e vscard ]]
        then
            rm -v vscard
        fi
        return 3
    fi
    popd >/dev/null
    return 0
}

conf_processing type/vscard.spice
rc=$?
if [[ 0 == $rc ]]
then
    echo "This is a SPICE server"
    exit 0
fi

conf_processing type/vscard.tera force
rc=$?
if [[ 0 == $rc ]]
then
    echo "This is a TERA server"
    exit 0
fi

echo "Fail conf processing (spice or tera?) $rc"
