#!/bin/sh set -eu recurse() { ( cd "$1" shift if [ -d ".git" ]; then # If current directory is a git directory, # call the git command printf "\033[1;34m## $(pwd)\033[0m\n" git "$@" printf "\n" else # Otherwise, recurse in sub-directories for d in ./*; do if [ -d "$d" ]; then recurse "$d" "$@" fi done fi ) } recurse "." "$@"