#!/bin/bash set -euo pipefail SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" function buildtestpublish() { local dir="$1" cd "$dir" TOOLNAME=$(basename "$dir") echo "Building $TOOLNAME" echo "Testing $TOOLNAME" echo "Publishing $TOOLNAME" echo "Done" } function buildtestpublish_all() { PREVIOUS_DIR=$(pwd) # find all subdirectories in the current directory that don't begin with a dot find "$SCRIPT_DIR" -maxdepth 1 -type d \ -not -name ".*" \ -not -path "$SCRIPT_DIR" \ -print0 | while IFS= read -r -d '' dir; \ do buildtestpublish "${dir}" done cd "$PREVIOUS_DIR" } buildtestpublish_all