#!/usr/bin/env bash
#
# Add a directory to the beginning of the PATH if it's not already there.
# Usage: x-path-append <dir>

# Set verbosity with VERBOSE=1
VERBOSE="${VERBOSE:-0}"

# Function to print messages if VERBOSE is enabled
# $1 - message (string)
msg()
{
  [[ "$VERBOSE" -eq 1 ]] && echo "$1"
}

if [ "$#" -ne 1 ]; then
  echo "Usage: $0 <dir>"
  exit 1
fi

dir="$1"

if echo "$PATH" | grep -qE "(^|:)$dir($|:)"; then
  export PATH=$(echo -n "$PATH" | awk -v RS=: -v ORS=: "\$0 != \"$dir\"" | sed 's/:$//')
  msg "Directory $dir has been removed from PATH"
else
  msg "Directory $dir is not in PATH"
fi

if [ ! -d "$dir" ]; then
  msg "(?) Directory $dir does not exist"
  exit 0
fi

if echo "$PATH" | grep -qE "(^|:)$dir($|:)"; then
  msg "(!) Directory $dir is already in PATH"
else
  export PATH="${PATH:+"$PATH:"}$dir"
  msg "(!) Directory $dir has been added to the end of PATH"
fi
