-
Notifications
You must be signed in to change notification settings - Fork 20
/
step-042.sh
83 lines (68 loc) · 2.27 KB
/
step-042.sh
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
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/sh
# Test:
# Run a single-repo install and try the auto-update
if echo "$EXTRA_INSTALL_ARGS" | grep -q "use-core-hookspath"; then
echo "Using core.hooksPath"
exit 249
fi
LAST_UPDATE=$(git config --global --get githooks.autoupdate.lastrun)
if [ -n "$LAST_UPDATE" ]; then
echo "! Update already marked as run"
exit 1
fi
mkdir -p /tmp/start/dir && cd /tmp/start/dir || exit 1
git init || exit 1
if ! sh /var/lib/githooks/install.sh --single; then
echo "! Installation failed"
exit 1
fi
ARE_UPDATES_ENABLED=$(git config --global --get githooks.autoupdate.enabled)
if [ "$ARE_UPDATES_ENABLED" != "true" ]; then
echo "! Auto updates were expected to be enabled"
exit 1
fi
LAST_UPDATE=$(git config --global --get githooks.autoupdate.lastrun)
if [ -n "$LAST_UPDATE" ]; then
echo "! Update already marked as run"
exit 1
fi
# Reset to trigger update
if ! (cd ~/.githooks/release && git reset --hard HEAD~1 >/dev/null); then
echo "! Could not reset master to trigger update."
exit 1
fi
# Test update again with deprecated single flag
git config --local githooks.single.install "true" || exit 1
OUTPUT=$(
HOOK_NAME=post-commit HOOK_FOLDER=$(pwd)/.git/hooks EXECUTE_UPDATE=Y \
sh ~/.githooks/release/base-template-wrapper.sh 2>&1
)
if ! echo "$OUTPUT" | grep -iq "DEPRECATION WARNING: Single install" ||
! echo "$OUTPUT" | grep -iq "Install failed due to deprecated single install"; then
echo "$OUTPUT"
echo "! Expected installation to fail because of single install flag"
exit 1
fi
# Test update again without single flag
git config --local --unset githooks.single.install || exit 1
git config --global --unset githooks.autoupdate.lastrun
OUTPUT=$(
HOOK_NAME=post-commit HOOK_FOLDER=$(pwd)/.git/hooks EXECUTE_UPDATE=Y \
sh ~/.githooks/release/base-template-wrapper.sh 2>&1
)
if ! echo "$OUTPUT" | grep -q "All done! Enjoy!"; then
echo "! Expected installation output not found"
echo "$OUTPUT"
exit 1
fi
LAST_UPDATE=$(git config --global --get githooks.autoupdate.lastrun)
if [ -z "$LAST_UPDATE" ]; then
echo "! Update did not run"
exit 1
fi
CURRENT_TIME=$(date +%s)
ELAPSED_TIME=$((CURRENT_TIME - LAST_UPDATE))
if [ $ELAPSED_TIME -gt 5 ]; then
echo "! Update did not execute properly"
exit 1
fi