Index: .hooks/pre-commit.d/check_files =================================================================== --- /dev/null +++ .hooks/pre-commit.d/check_files @@ -0,0 +1,31 @@ +#!/bin/sh +# +# Check that only standard files are added to a port +# +# .*\.mk +# Makefile.* +# dist-info.* +# pkg-descr.* +# pkg-message.* +# pkg-plist.* +# pkg-post.* +# + +newish_files=$(git diff --name-only --cached --diff-filter=ACR | grep -E '^[^/]+/[^/]+/[^/]+$' | grep -v '/files/' | grep -v '^\.') +status=0 +if [ $? -eq 0 ] ; then + for newish_file in ${newish_files} ; do + category=$(echo "${newish_file}" | awk -F '/' '{print $1}') + port=$(echo "${newish_file}" | awk -F '/' '{print $2}') + file=$(echo "${newish_file}" | awk -F '/' '{print $3}') + valid=$(echo "${file}" | grep -q '((Makefile|pkg-descr|pkg-message|pkg-plist|pkg-post)(.*))|(.*\.mk)') + if [ $? -ne 0 ] ; then + echo "[pre-commit] ERROR: invalid file '${file}' in '${category}/${port}'" + status=1 + fi + done +fi +if [ ${status} -eq 1 ] ; then + echo " Consider moving non-standard files to files/ or force-ignore this hook." + exit 1 +fi