#!/bin/bash
#------------------------------------------------------------------------------
##
# \file        binfunc
# \library     bin
# \author      Chris Ahlstrom
# \date        2015-03-15 to 2019-09-27
# \version     $Revision$
# \license     GNU GPLv2 or above
#
#     This script provides standard functions for my ~/bin scripts.
#     An optional external shell variable, LogFileName, if defined, is used
#     as the location to dump the log.
#
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
#  Provide a sane environment, just in case it is needed.
#------------------------------------------------------------------------------

LANG=C
export LANG
export BinEditDate="2019-09-27"

#------------------------------------------------------------------------------
# Global variables and standard error codes for our scripts
#------------------------------------------------------------------------------

LogFileName=""

ErrorBadOption=1
ErrorMsgBadOption="Unsupported option"
ErrorLogFile=2
ErrorMsgLogFile="Please specify a --log name."
ErrorMsgBadLogFile="Please specify a legal (no hyphen) --log name."

#------------------------------------------------------------------------------
# die $exitcode $project $errormessage ... <optional additional strings>
#------------------------------------------------------------------------------

function die()
{
   ExitCode=$1
   CurrProject=$2
   Message="? $3"
   shift 3
   while [ "$1" != "" ] ; do
      Message+="  "
      Message+="$1"
      Message+=$'\n'
      shift
   done

   if [ "$LogFileName" != "" ] ; then
      echo "$Message" >> $LogFileName
   fi

   cat << E_O_F

$Message
  Run this script with the --help option for more information."
E_O_F

   exit $ExitCode
}

#------------------------------------------------------------------------------
# msg $project $errormessage ... <optional additional strings>
#------------------------------------------------------------------------------

function msg()
{
   CurrProject=$1
   Message="* $2"
   shift 2
   while [ "$1" != "" ] ; do
      Message+="  "
      Message+="$1"
      Message+=$'\n'
      shift
   done

   if [ "$LogFileName" != "" ] ; then
      echo "$Message" >> $LogFileName
   fi

   echo ""
   echo "$Message"
}

#------------------------------------------------------------------------------
# setlog $filename
#------------------------------------------------------------------------------

function setlog()
{
   if [ "$1" == "" ] ; then
      die $ErrorLogFile "$MyScript" "$ErrorMsgLogFile"
   else
      export LogFileName="$1"
   fi
   SUBSTR="${1:0:1}"
   if [ $SUBSTR == "-" ] ; then
      die $ErrorLogFile "$MyScript" "$ErrorMsgBadLogFile"
   fi
}

# vim: sw=4 ts=4 wm=4 et ft=sh
