#!/bin/bash

version="0.1"

function usage()
{
    echo "Usage :  $0 [options]

    Create a header/source/test triplet.

    Options:
    -h,--help       Display this message
    -v,--version    Display script version"
}

# Parse arguments
declare -a args
while [[ $# -gt 0 ]]; do
    opt="$1"

    case $opt in
        -h|--help)     usage; exit 0 ;;
        -v|--version)  echo "$0 -- Version $version"; exit 0 ;;
        -*)
            echo -e "\n  Option does not exist : $opt\n"
            usage; exit 1 ;;

        *) args+=("$opt"); shift ;;
    esac
done

read -d '' fpp_copy <<EOD
// Copyright © Focal Point Positioning Limited $(date +%Y). All Rights Reserved.
// This code is the copyright of Focal Point Positioning Limited and
// cannot be used, copied or distributed without the express written
// permission of Focal Point Positioning Limited.
EOD

_h=${COMPONENT_HEADER_SUFFIX:-.hpp}
_c=${COMPONENT_SOURCE_SUFFIX:-.cpp}
_t=${COMPONENT_TEST_SUFFIX:-.t.cpp}

for f in "${args[@]}"; do
    c=$(basename $f)
    printf '%s\n\n#pragma once\n\n' "$fpp_copy" >$f$_h
    printf '%s\n\n#include "%s"\n\n' "$fpp_copy" "$c$_h" >$f$_c
    printf '%s\n\n#include <gtest/gtest.h>\n\n#include "%s"\n' "$fpp_copy" "$c$_h" >$f$_t
done