#!/bin/ksh

# Script para execuo das validaes ps-instalao do CSBase.
# Valida os parmetros da linha de comando e os repassa para a classe
# csbase.validations.Validator, que se encarrega de aplicar as validaes
#
# $Id$

SYSNAME=$(uname)

function usage {
    cat << EOF

Uso: $(basename $0) [-v] [-V] [-p path]

Opcoes:

  -c      : extensao para o CLASSPATH
  -h      : este texto de ajuda
  -p path : caminho para o arquivo de propriedades do sistema
  -v      : modo verbose
  -V      : executa apenas a validacao

EOF
}

while getopts "vVhp:c:" params; do
    case $params in
        [vV])
            opts="$opts -$params"
        ;;
        p)
            # garantimos que o path  absoluto
            absPath=$(cd $(dirname $OPTARG); pwd)
            pFile=$(basename $OPTARG)
            fullPath="$absPath/$pFile"

            # Converte o caminho para o arquivo para o formato Windows
            case ${SYSNAME} in
                    CYGWIN*)
                    fullPath=$(cygpath -w ${fullPath})
                    ;;
            esac

            opts="$opts -p $fullPath"
        ;;
        c)
            classPathExt="$OPTARG"
        ;;
        h)
            usage
            exit 0
        ;;
        *)
        # parmetro desconhecido
            usage
            exit 1
        ;;
    esac
done

# descartamos os parametros processados
shift $((OPTIND - 1))

# vamos para o dir-pai de csbase/bin, independente de a partir de onde este
# script foi executado
scriptDir=$(dirname $0)
cd $scriptDir/../..

CSBASE_DIR="."
CSBASE_LIBS="$CSBASE_DIR/csbase/libs"
CONF_DIR="$CSBASE_DIR/csbase/conf"

. $CONF_DIR/csbase.sh

# TODO incluir no classpath o JAR do servidor, quando este estiver disponvel
CLASSPATH=".:$CSBASE_DIR:$JAR_JAVAUTILS:$JAR_ARGS4J"

# FIXME temporrio
# Por enquanto temos que acrescentar o dir do projeto no classpath
# porque a converso de permisses pode depender de classes especficas
# do mesmo. Quando estivermos gerando JARs para o servidor, isto vai
# deixar de ser necessrio.
for dir in src infogrid georisco marlim; do
    if [ -d $dir ]; then
        SYS_ROOT=$dir
        break
    fi
done
test -n "$SYS_ROOT" && CLASSPATH="$CLASSPATH:$SYS_ROOT"

# acrescenta ao classpath a extenso definida pelo parmetro '-c'
test -n "$classPathExt" && CLASSPATH="$CLASSPATH:$classPathExt"

# Converte o classpath para o formato Windows
case ${SYSNAME} in
        CYGWIN*)
        CLASSPATH=$(cygpath -mp ${CLASSPATH})
        export CLASSPATH
        cygstart java validations.Validator $opts
        ;;
        *)
        export CLASSPATH
        java validations.Validator $opts
        ;;
esac
