#! /bin/sh

prefix=/usr
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=/usr/lib64

usage()
{
    cat 1>&2 <<EOF
Usage: $0 [OPTION]

Known values for OPTION are:

  --libs               print library linking information
  --cxxflags           print pre-processor and compiler flags
  --logxml app         print logging xml template for application "app"
  --logproperties app  print logging properties template for application "app"
  --help               display this help and exit
  --version            output version information
EOF

    exit 1
}

CXXTOOLS_LOGGING_CXXTOOLS_template_xml()
{
  cat <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!--
  sample logging-xml for application ++APP++
  put this in ++APP++.xml and use:
    log_init("++APP++.xml");
  in your application to initialize logging

  define categories with:
    log_define("some.category")
  this defines a static function, so you must put it outside other functions.
  you can define a category per file or a category per namespace.

  print logging-messages with:
    log_fatal("some fatal message");
    log_error("some error message");
    log_warn("some warn message");
    log_info("some info message");
    log_debug("some debug message");

-->
<logging>
  <rootlogger>INFO</rootlogger>
  <loggers>
    <logger>
      <category>++APP++</category>
      <level>INFO</level>
    </logger>
  </loggers>
  <!-- <file>$LOGFILE</file> -->      <!--uncomment if you want to log to a file -->
  <!-- <maxfilesize>1MB</maxfilesize> -->
  <!-- <maxbackupindex>2</maxbackupindex> -->
  <!-- <host>localhost:1234</host> --> <!--  # send log-messages with udp -->
</logging>
EOF
}

CXXTOOLS_LOGGING_CXXTOOLS_template_properties()
{
  cat <<EOF
# sample logging-properties for application ++APP++
# put this in ++APP++.properties and use:
#   log_init("++APP++.properties");
# in your application to initialize logging
#
# define categories with:
#   log_define("some.category")
# this defines a static function, so you must put it outside other functions.
# you can define a category per file or a category per namespace.
#
# print logging-messages with:
#   log_fatal("some fatal message");
#   log_error("some error message");
#   log_warn("some warn message");
#   log_info("some info message");
#   log_debug("some debug message");
#
rootLogger=INFO

# define logger-categories
logger.++APP++=INFO

# uncomment if you want to log to a file
#file=$LOGFILE
#maxfilesize=1MB
#maxbackupindex=2
#host=localhost:1234  # send log-messages with udp
EOF
}

if test $# -eq 0; then
    usage 1
fi

LOGFILE=++APP++.log

while test $# -gt 0; do
    case "$1" in

    --version)
        echo 3.0
        exit 0
        ;;

    --help)
        usage 0
        ;;

    --cxxflags)
        echo -I${includedir}
        ;;

    --libs)
        echo -L${libdir} -lcxxtools 
        ;;

    --logxml)
        if test $# -gt 1
        then
          CXXTOOLS_LOGGING_CXXTOOLS_template_xml | sed "s/++APP++/$2/"
          shift
        else
          usage 1
        fi
        ;;

    --logproperties)
        if test $# -gt 1
        then
          CXXTOOLS_LOGGING_CXXTOOLS_template_properties | sed "s/++APP++/$2/"
          shift
        else
          usage 1
        fi
        ;;

    *)
        usage 1
        ;;
    esac
    shift
done

exit 0
