#!/bin/bash
#///////////////////////////////////////////////////////////////////////////////
#// Copyright (c) 2000-2019 Ericsson Telecom AB                               //
#//                                                                           //
#// All rights reserved. This program and the accompanying materials          //
#// are made available under the terms of the Eclipse Public License v2.0     //
#// which accompanies this distribution, and is available at                  //
#// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html                                 //
#///////////////////////////////////////////////////////////////////////////////
# if no arguments and not piped print info:
if [ ! "$*" -a -t 0 ]
then
echo "ttcn3prof version 1.0"
echo "TTCN3 Profiler info generator tool"
echo "Usage: ttcn3prof <profilerFiles>"
echo ""
echo "Merges output generated by the executable test suite into a single file."
echo "This output can be also processed by this script as input."
echo ""
echo "The Profiler measures the execution time of code lines."
exit
fi

echo "-"
echo "- Profiler info is generated by ttcn3prof version 1.0 on "$(date)" for user "$USER
echo "-"
echo ""
gawk -f $(dirname $0)/ttcn3prof_MergeResults.awk $*
