#!/bin/bash # Modified from https://github.com/chaitanyagupta/gitutils [ -n "$CI" ] && exit 0 GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD) if [ "$GIT_BRANCH" = "main" ]; then yarn lint-staged --relative lintStatus=$? if [ $lintStatus -ne 0 ]; then echo "❌ Linting failed" exit 1 fi fi green='\033[0;32m' no_color='\033[0m' grey='\033[0;90m' red='\033[0;31m' ROOT_DIR=$(git rev-parse --show-cdup) SUBMODULES=$(grep path ${ROOT_DIR}.gitmodules | sed 's/^.*path = //') MOD_SUBMODULES=$(git diff --cached --name-only --ignore-submodules=none | grep -F "$SUBMODULES") echo -e "Checking submodules ${grey}(pre-commit hook)${no_color} " # If no modified submodules, exit with status code 0, else prompt the # user and exit accordingly if [[ -n "$MOD_SUBMODULES" ]]; then echo "Submodules to be committed:" echo " (use \"git reset HEAD ...\" to unstage)" echo for SUB in $MOD_SUBMODULES do echo -e "\t${green}modified:\t$SUB${no_color}" done echo echo -e "${red}Aborting commit due to submodule update. Please unstage the submodule(s) and commit again.${no_color}" exit 1 else echo "No submodules in commit, continuing..." exit 0 fi