#!/bin/sh

# ==================================================================
# Script that pretends to be an IRIS input or output pipe
# Can be use to combine existing pipes with the 3-party converters

program_name=`basename $0`
program_version="0.0"

usage()
{
    echo "$program_name -i <input_file> -o <output_file>"
    echo "Try \`$program_name --help' for more information." 1>&2
    exit 1
}

version()
{
    echo "$program_name $program_version"
    exit 0
}

help()
{
    echo "\
Usage: $program_name [OPTIONS]... .
  -i, --ip=STRING        full path to input file
  -o, --op=STRING        full path to output file
  -v, --version
  -d, --device=INT
  -s, --seams=STRING     colon (:) separates list of seams
  -c, --colors=INT       number of colors

Help options:
  -h, -?, --help         Show this help message
      --usage            Display brief usage message
" 
  exit 
}

# ==================================================================
# This script has to have at least 1 argument -h

if [ $# -lt 1 ]
then
    echo "$program_name: too few arguments" 1>&2
    usage
fi

# ==================================================================
# Parse arguments

while [ $# -ne 0 ]
do
    case "$1" in
        -i)
            shift
	        if [ -z "$INPUT_FILE" ]
            then
                INPUT_FILE="$1"
            else
                echo "$program_name: Input file is already set. Ignoring extra name: $1" 1>&2
            fi
            ;;
        --ip=*)
	        if [ -z "$INPUT_FILE" ]
            then
                INPUT_FILE="`echo $1 | sed 's/.*=//'`"
            else
                echo "$program_name: Input file is already set. Ignoring extra name: $1" 1>&2
            fi
            ;;
        -o)
            shift
	        if [ -z "$OUTPUT_FILE" ]
            then
                OUTPUT_FILE="$1"
            else
                echo "$program_name: Output file is already set. Ignoring extra name: $1" 1>&2
            fi
            ;;
        --op=*)
	        if [ -z "$OUTPUT_FILE" ]
            then
                OUTPUT_FILE="`echo $1 | sed 's/.*=//'`"
            else
                echo "$program_name: Output file is already set. Ignoring extra name: $1" 1>&2
            fi
            ;;

        -d)
            shift
	        if [ -z "$DEVNUM" ]
            then
                DEVNUM="$1"
            else
                echo "$program_name: Device number is already set. Ignoring extra name: $1" 1>&2
            fi
            ;;
        --device=*)
	        if [ -z "$DEVNUM" ]
            then
                DEVNUM="`echo $1 | sed 's/.*=//'`"
            else
                echo "$program_name: Device number is already set. Ignoring extra name: $1" 1>&2
            fi
            ;;
        -s)
            shift
	        if [ -z "$SEAMS" ]
            then
                SEAMS="$1"
            else
                echo "$program_name: Seams are already set. Ignoring extra name: $1" 1>&2
            fi
            ;;
        --seams=*)
	        if [ -z "$SEAMS" ]
            then
                SEAMS="`echo $1 | sed 's/.*=//'`"
            else
                echo "$program_name: Seams are already set. Ignoring extra name: $1" 1>&2
            fi
            ;;
        -c)
            shift
	        if [ -z "$COLORS" ]
            then
                COLORS="$1"
            else
                echo "$program_name: Number of colors is already set. Ignoring extra name: $1" 1>&2
            fi
            ;;
        --colors=*)
	        if [ -z "$COLORS" ]
            then
                COLORS="`echo $1 | sed 's/.*=//'`"
            else
                echo "$program_name: Number of colors is already set. Ignoring extra name: $1" 1>&2
            fi
            ;;
        -v|--version)
            version
            ;;
        -h|-'?')
            help
            ;;
        --help)
            help
            ;;
        --usage)
            usage
            ;;            
        *)
            echo "$program_name: Unexpected argument: $1" 1>&2
            usage
            ;;
    esac
    shift
done

# ===================================================================================


if [ -z "$INPUT_FILE" ]
then
    echo "$program_name: need input file name" 1>&2
    usage
fi

if [ -z "$OUTPUT_FILE" ]
then
    echo "$program_name: need output file name" 1>&2
    usage
fi

if [ -z "$IRIS_LOG" ]
then
    IRIS_LOG="/tmp"
fi

# Add real converter here 
echo "Called: $program_name -i $INPUT_FILE -o $OUTPUT_FILE" | tee "$IRIS_LOG/${program_name}.log"

exit 0
