|
1 | | -# #!/bin/bash |
2 | | -# |
3 | | -# # Copyright (c) 2017-2018 Martin Donath <martin.donath@squidfunk.com> |
4 | | -# |
5 | | -# # Permission is hereby granted, free of charge, to any person obtaining a copy |
6 | | -# # of this software and associated documentation files (the "Software"), to |
7 | | -# # deal in the Software without restriction, including without limitation the |
8 | | -# # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
9 | | -# # sell copies of the Software, and to permit persons to whom the Software is |
10 | | -# # furnished to do so, subject to the following conditions: |
11 | | -# |
12 | | -# # The above copyright notice and this permission notice shall be included in |
13 | | -# # all copies or substantial portions of the Software. |
14 | | -# |
15 | | -# # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
16 | | -# # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
17 | | -# # FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE |
18 | | -# # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
19 | | -# # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
20 | | -# # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
21 | | -# # IN THE SOFTWARE. |
22 | | -# |
23 | | -# # ----------------------------------------------------------------------------- |
24 | | -# # Constants |
25 | | -# # ----------------------------------------------------------------------------- |
26 | | -# |
27 | | -# # Patch file to store working tree |
28 | | -# PATCH=".working-tree.patch" |
29 | | -# |
30 | | -# # ----------------------------------------------------------------------------- |
31 | | -# # Functions |
32 | | -# # ----------------------------------------------------------------------------- |
33 | | -# |
34 | | -# # Re-create working tree from patch file and preserve exit code |
35 | | -# function cleanup { |
36 | | -# EXIT_CODE=$? |
37 | | -# if [ -f "${PATCH}" ]; then |
38 | | -# git apply "${PATCH}" 2> /dev/null |
39 | | -# rm "${PATCH}" |
40 | | -# fi |
41 | | -# exit $EXIT_CODE |
42 | | -# } |
43 | | -# |
44 | | -# # ----------------------------------------------------------------------------- |
45 | | -# # Handlers |
46 | | -# # ----------------------------------------------------------------------------- |
47 | | -# |
48 | | -# # Register signal handlers |
49 | | -# trap cleanup EXIT SIGINT SIGHUP |
50 | | -# |
51 | | -# # ----------------------------------------------------------------------------- |
52 | | -# # Program |
53 | | -# # ----------------------------------------------------------------------------- |
54 | | -# |
55 | | -# # Remove any changes from the working tree that are not going to be committed |
56 | | -# git diff > "${PATCH}" |
57 | | -# git checkout -- . |
58 | | -# |
59 | | -# # Filter staged files and create short list for files to lint |
60 | | -# FILES=$(git diff --cached --name-only --diff-filter=ACMR | grep "\.ts$") |
61 | | -# |
62 | | -# # Run linter if the commit contains files that require it |
63 | | -# if [ "$FILES" ]; then |
64 | | -# make lint |
65 | | -# fi |
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# Copyright (c) 2017-2018 Martin Donath <martin.donath@squidfunk.com> |
| 4 | + |
| 5 | +# Permission is hereby granted, free of charge, to any person obtaining a copy |
| 6 | +# of this software and associated documentation files (the "Software"), to |
| 7 | +# deal in the Software without restriction, including without limitation the |
| 8 | +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
| 9 | +# sell copies of the Software, and to permit persons to whom the Software is |
| 10 | +# furnished to do so, subject to the following conditions: |
| 11 | + |
| 12 | +# The above copyright notice and this permission notice shall be included in |
| 13 | +# all copies or substantial portions of the Software. |
| 14 | + |
| 15 | +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 16 | +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 17 | +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE |
| 18 | +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| 19 | +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
| 20 | +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
| 21 | +# IN THE SOFTWARE. |
| 22 | + |
| 23 | +# ----------------------------------------------------------------------------- |
| 24 | +# Constants |
| 25 | +# ----------------------------------------------------------------------------- |
| 26 | + |
| 27 | +# Patch file to store working tree |
| 28 | +PATCH=".working-tree.patch" |
| 29 | + |
| 30 | +# ----------------------------------------------------------------------------- |
| 31 | +# Functions |
| 32 | +# ----------------------------------------------------------------------------- |
| 33 | + |
| 34 | +# Re-create working tree from patch file and preserve exit code |
| 35 | +function cleanup { |
| 36 | + EXIT_CODE=$? |
| 37 | + if [ -f "${PATCH}" ]; then |
| 38 | + git apply "${PATCH}" 2> /dev/null |
| 39 | + rm "${PATCH}" |
| 40 | + fi |
| 41 | + exit $EXIT_CODE |
| 42 | +} |
| 43 | + |
| 44 | +# ----------------------------------------------------------------------------- |
| 45 | +# Handlers |
| 46 | +# ----------------------------------------------------------------------------- |
| 47 | + |
| 48 | +# Register signal handlers |
| 49 | +trap cleanup EXIT SIGINT SIGHUP |
| 50 | + |
| 51 | +# ----------------------------------------------------------------------------- |
| 52 | +# Program |
| 53 | +# ----------------------------------------------------------------------------- |
| 54 | + |
| 55 | +# Remove any changes from the working tree that are not going to be committed |
| 56 | +git diff > "${PATCH}" |
| 57 | +git checkout -- . |
| 58 | + |
| 59 | +# Filter staged files and create short list for files to lint |
| 60 | +FILES=$(git diff --cached --name-only --diff-filter=ACMR | grep "\.ts$") |
| 61 | + |
| 62 | +# Run linter if the commit contains files that require it |
| 63 | +if [ "$FILES" ]; then |
| 64 | + make lint |
| 65 | +fi |
0 commit comments