ROOT_DIR=“$( cd ”$( dirname “${BASH_SOURCE}” )/..“ && pwd )” SCRIPT_DIR=“${ROOT_DIR}/script” source $SCRIPT_DIR/predicate_functions.sh
function decide_what_to_run {
if [ "$#" -lt 1 ]; then
echo "Missing cmd"
exit 1
fi
local cmd=$1
local maybe_library=$2
local lib_dir=false
local args=""
# if a second argument is provided, lets see if it is an rspec lib
if [ -n "$maybe_library" ]; then
maybe_result=( $(find . -maxdepth 1 -type d -name "rspec-$maybe_library*") )
if [[ ! -z $maybe_result ]]; then
lib_dir=$maybe_result
fi
fi;
# if more arguments are provided then they are to be passed through
if [ "$#" -gt 2 ]; then
shift 2
args=$@
fi
# if the second argument isn't a directory and is provided then shift it back onto args
if [ ! -d $lib_dir ] && $lib_dir; then
args="${lib_dir} ${args}"
fi;
if [ $PWD -ef $ROOT_DIR ]; then
if [ -d $lib_dir ]; then
echo "Running in $lib_dir only..."
echo
# if it is an rspec lib run the command in that folder only
pushd $lib_dir > /dev/null
$cmd $args
popd > /dev/null
else
echo "Running in all directories..."
echo
# otherwise run it for all folders
for repo_dir in `ls -d rspec-*`; do
pushd $repo_dir > /dev/null
$cmd $args
popd > /dev/null
done
fi;
else
# run command if in folder
$cmd $args
fi;
}