#!/bin/bash
#
# Guralp Configuration System
#   Copyright (c) 2009-2010 Guralp Systems Ltd. All rights reserved.
#
#   Network GCF BRP input config

# Handle the navbar query without loading anything
if [ "X$1" == "X--navbar" ]
then
	echo "servicestop	Services"
	echo "servicessub/gcf-in-brp	gcf-in-brp"
	echo "gcf-in-brp/$3	$3"
	exit 0
fi

# Load support functions
script_dir=$(dirname $0)
. $script_dir/functions.sh
. $script_dir/svc_funcs.sh
. $script_dir/gdi-base_link.sh

name="$2"
sel="$3"

CFGFILE="$CONFIGDIR/$name/${sel}.local"
CTLFILE="$CONFIGDIR/$name/${sel}.ctl.local"
SRVBASE="$SERVDIR/$name"


do_read() {

    # Standard control info
    gcs_svc_read || return 1

    # Now the service type dependant variables

    gcs_var "d_debug_copy_service"	""
    gcs_var "d_brp_disable_rewind"	"False"
    gcs_var "d_tcp_host"		""
    gcs_var "d_tcp_service"		"10002"	# 6TD Lantronics default
    gcs_var "d_port_name"		""

    if [ -r "$CFGFILE" ]
    then
	gcs_var_o "debug_copy_service"
	gcs_var_o "brp_disable_rewind"
	gcs_var_o "tcp_host"
	gcs_var_o "tcp_service"
	gcs_var_o "port_name"

	#application_name SKIPPED
	#link_type        FIXED tcp

	gcs_gdi_base_iselect "$(gcs_get_varcf "gdi_socket" "${CFGFILE}")" "source"
    else
	gcs_gdi_base_iselect "" "source"
    fi
}


do_check() {
    gcs_read_vars
    
    # Standard service control/info vars
    gcs_svc_check

    gcs_gdi_base_dereference "source"
}


do_write() {

    do_check
    if (( gcs_errors > 0 ))
    then
        return
    fi

    if gcs_truefalse "${new_delete:-false}"
    then
        gcs_svc_delete "$name" "$sel"
    fi

    # Standard service controls
    gcs_ensure_cfgfile_exists $CTLFILE
    gcs_set_varf DESC $CTLFILE "$desc"

    # Now the service type dependant variables
    gcs_ensure_cfgfile_exists "$CFGFILE"

    gcs_set_varcf "link_type"          "${CFGFILE}" "tcp"
    gcs_set_varcf "debug_copy_service" "${CFGFILE}" "${new_debug_copy_service}"
    gcs_set_varcf "brp_disable_rewind" "${CFGFILE}" "${new_brp_disable_rewind}"
    gcs_set_varcf "application_description" "${CFGFILE}" "${desc}"
    gcs_set_varcf "tcp_host"           "${CFGFILE}" "${new_tcp_host}"
    gcs_set_varcf "tcp_service"        "${CFGFILE}" "${new_tcp_service}"
    gcs_set_varcf "port_name"          "${CFGFILE}" "${new_port_name}"
    gcs_set_varcf "gdi_socket"         "${CFGFILE}" "${new_gdi_socket}"

    # Update the service script
    gcs_update_svc "$name" "$sel" "$enable" "$desc" "$CFGFILE" \
            "$CTLFILE" "$SRVBASE"

    gcs_svc_reload "$name" "$sel"
}


case "X$1" in
X--check)   do_check ;;
X--write)   do_write ;;
X--read)    do_read  ;;
*)          exit 1   ;;
esac

gcs_cleanup
exit 0

# vim: ts=4:sw=4:expandtab
