| 1 | #!/bin/sh |
| 2 | # SPDX-License-Identifier: GPL-2.0-only |
| 3 | |
| 4 | diff_patch="${1}" |
| 5 | untracked_patch="${2}" |
| 6 | srctree=$(dirname $0)/../.. |
| 7 | |
| 8 | rm -f ${diff_patch} ${untracked_patch} |
| 9 | |
| 10 | if ! ${srctree}/scripts/check-git; then |
| 11 | exit |
| 12 | fi |
| 13 | |
| 14 | mkdir -p "$(dirname ${diff_patch})" "$(dirname ${untracked_patch})" |
| 15 | |
| 16 | git -C "${srctree}" diff HEAD > "${diff_patch}" |
| 17 | |
| 18 | if [ ! -s "${diff_patch}" ]; then |
| 19 | rm -f "${diff_patch}" |
| 20 | exit |
| 21 | fi |
| 22 | |
| 23 | git -C ${srctree} status --porcelain --untracked-files=all | |
| 24 | while read stat path |
| 25 | do |
| 26 | if [ "${stat}" = '??' ]; then |
| 27 | |
| 28 | if ! diff -u /dev/null "${srctree}/${path}" > .tmp_diff && |
| 29 | ! head -n1 .tmp_diff | grep -q "Binary files"; then |
| 30 | { |
| 31 | echo "--- /dev/null" |
| 32 | echo "+++ linux/$path" |
| 33 | cat .tmp_diff | tail -n +3 |
| 34 | } >> ${untracked_patch} |
| 35 | fi |
| 36 | fi |
| 37 | done |
| 38 | |
| 39 | rm -f .tmp_diff |
| 40 | |
| 41 | if [ ! -s "${diff_patch}" ]; then |
| 42 | rm -f "${diff_patch}" |
| 43 | exit |
| 44 | fi |