#!/bin/bash
# SZARP: SCADA software 
# 
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA

#  2003 Pawe Paucha PRATERM S.A pawel@praterm.com.pl

# $Id: ipk_base_max 4393 2007-09-13 16:37:10Z reksio $

# Skrypt wypisuje na standardowe wyjcie maksymalny indeks w bazie dla
# parametrw z podanego pliku (lub ze standardowego wejcia).
# Parametr: nazwa pliku wejciowego

. `dirname $0`/ipk_config

function Usage () {
	echo -e "\
Usage:\n\
 ipk_base_max [ <config_file> ]\n\
or\n\
 ipk_base_max -h | --help\n\
Prints greatest base index found in configuration.\n\
\n\
	-h, --help	print help and exit\n\
	<config_file>	configuration file, standard input is used if none\n\
			given\n\
\n\
Base indexes start from 0. Return code is 0 on success and 1 on error."
	exit 1
}

if [ "x$1" = "x-h" -o "x$1" = "x--help" ] ; then
	Usage
fi

[ $# -gt 1 ] && Usage

if [ $# -eq 0 ] ; then
	INPUT="-"
else
	INPUT="$1"
fi

TEMPLATES_DIR=$SZARP_DIR/resources/xslt

# kolejno:
# - sprawdzamy poprawno XML-a
# - sortujemy elementy 'param' zstpujco po wartoci 'base_ind'
# - wypisujemy warto atrybutu 'base_ind' pierwszego
# - bierzemy drug lini (bo pierwsza zawiera deklaracj XML)
xmllint $XMLLINT_VALID_ARGS "$INPUT" \
| xsltproc $TEMPLATES_DIR/sort_base.xsl - \
| xsltproc $TEMPLATES_DIR/first_base.xsl - \
| tail -n 1

