#!/usr/bin/env bash
#
#/ Usage: foreman-runner [-d <dir>] [-p] <command> [<args>...]
#/
#/ Run a command with exec, optionally changing directory first

set -e

error() {
  echo $@ >&2
  exit 1
}

usage() {
  cat $0 | grep '^#/' | cut -c4-
  exit
}

read_profiled=""

while getopts ":hd:p" OPT; do
  case $OPT in
     d) cd "$OPTARG" ;;
     p) read_profiled="1" ;;
     h) usage ;;
    \?) error "invalid option: -$OPTARG" ;;
     :) error "option -$OPTARG requires an argument" ;;
  esac
done

shift $((OPTIND-1))

[ -z "$1" ] && usage

if [ "$read_profiled" == "1" ]; then
  shopt -s nullglob
  for script in .profile.d/*; do
    echo "sourcing $script"
    source $script
  done
  shopt -u nullglob
fi

exec "$@"
