#!/usr/bin/env bash
DEVSHOP_PATH="$( cd "$(dirname "$0")"/.. ; pwd -P )"
PATH="$DEVSHOP_PATH/bin:$DEVSHOP_PATH/scripts:$PATH"

# Extract the filename of the calling script.
# Thanks:
#    https://stackoverflow.com/a/26985984
#    https://stackoverflow.com/a/965072

COMMAND="$(ps -o args= $PPID)"
IFS=' '
read -a COMMANDS <<< "$COMMAND"
SCRIPT_PATH=${COMMANDS[1]}
FILENAME=$(basename -- "$SCRIPT_PATH")
LABEL=${LABEL:-$FILENAME}
PREFIX=${PREFIX:-DevShop}
OPTIONS=${OPTIONS:-}
MESSAGE="$@"

if [ -n "${LABEL}" ]; then
  LABEL="| ${LABEL} "
fi

usage() {
echo \
" devshop-log Message
  Prints 'Message' with a prefix that identifies the file.

  Alter the message with environment variables:

    PREFIX  The string to show at the beginning. Default: DevShop
    LABEL   The string to show next. Default: The name of the script calling 'devshop-log'

"
}

if [ -z "$MESSAGE" ]; then usage && exit 1; fi
echo $OPTIONS "$PREFIX $LABEL| $@";