#!/bin/bash # #/ Usage: foreman-runner [-d ] [-p] [...] #/ #/ 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 "$@"