#!/bin/bash set -eu -o pipefail # Intended to be run after a build. Returns 1 (i.e. failure) if there's at # least one modified or untracked file which is not gitignored. # Don't inline it in the if, since we want to exit on error return codes (set -e). status="$(git status --porcelain)" if [ -z "$status" ]; then echo "No not-gitignored changes :]" exit 0 fi echo "================================================================================" echo " ERROR: Files modified by build, but not gitignored:" echo "--------------------------------------------------------------------------------" echo "$status" git submodule foreach --recursive git status --porcelain echo "================================================================================" exit 1