This repository has been archived by the owner on Nov 10, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 58
/
pre-commit
executable file
·70 lines (60 loc) · 1.95 KB
/
pre-commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/bash
# WordPress pre-commit hook
#
# We assume this script was called from the root of the project because
# otherwise we can't guess path to readme.txt, etc.
#
set -e
shopt -s expand_aliases
if [ -L "$0" ]; then
# The currently running file is a symlink.
if readlink "$0" | grep -sqE '^\.\.*/'; then
DEV_LIB_PATH=$( dirname "$0" )/$( dirname $( readlink "$0" ) )
else
DEV_LIB_PATH=$( dirname $( readlink "$0" ) )
fi
elif [ -f "$0" ]; then
# Set this directory as path to dev-lib.
DEV_LIB_PATH=$( dirname "$0" )
fi
if [ ! -e "$DEV_LIB_PATH/check-diff.sh" ]; then
echo "Unable to determine DEV_LIB_PATH"
exec < /dev/tty # to be able to use read
read -p "Would you like to clone wp-dev-lib to a temporary dir? [y/N] " -r -n 1
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
else
echo
DEV_LIB_PATH="/tmp/.wp-dev-lib"
if [ ! -e "$DEV_LIB_PATH" ]; then
git clone https://github.com/xwp/wp-dev-lib.git $DEV_LIB_PATH
fi
fi
fi
source "$DEV_LIB_PATH/check-diff.sh"
set_environment_variables --diff-base ${DIFF_BASE:-HEAD} --diff-head ${DIFF_HEAD:-STAGE}
install_tools
echo "## Checking files, scope $CHECK_SCOPE:"
cat "$TEMP_DIRECTORY/paths-scope"
# Run any custom tests by defining a run_tests function, see sample-scripts/.dev-lib
if [ "$( type -t run_tests )" != '' ]; then
run_tests
fi
check_execute_bit
lint_js_files
lint_php_files
lint_xml_files
run_qunit
run_phpunit_local
run_codeception
# Run any custom tests after all other tests by defining a run_after_tests function, see sample-scripts/.dev-lib
if [ "$( type -t run_after_tests )" != '' ]; then
run_after_tests
fi
# Make sure the readme.md never gets out of sync with the readme.txt, if it is staged for commit.
if [[ $SYNC_README_MD == 1 ]] && [ -e readme.txt ] && cat "$TEMP_DIRECTORY/paths-scope" | remove_diff_range | grep -sqE '^readme\.txt$'; then
MARKDOWN_README_PATH=$($DEV_LIB_PATH/generate-markdown-readme)
if [ -n "$MARKDOWN_README_PATH" ]; then
git add $MARKDOWN_README_PATH
fi
fi