]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/tools/headerstyle.sh
Merge branch 'TimePath/modules'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / tools / headerstyle.sh
1 #!/usr/bin/env bash
2 set -eu
3 cd ${0%/*}
4 cd ..
5
6 function startswith() {
7     declare -l file="${1}"
8     declare -l prelude="${2}"
9     declare -l line=$(head -n1 "$file")
10     if [ "$line" != "$prelude" ]; then
11         echo "$prelude" | cat - "$file" > "$file.tmp" && mv "$file.tmp" "$file"
12     fi
13 }
14
15 function check() {
16     declare -l base="${1}"
17     find "$base" -type f -name '*.qc' -print0 | sort -z | while read -r -d '' file; do
18         echo "$file"
19         declare -l file_h="${file%.qc}.qh"
20         if [[ ! -f "$file_h" ]]; then echo "#pragma once" > "$file_h"; fi
21
22         include=$(basename "$file")
23         include="${include%.qc}.qh"
24         include="#include \"${include}\""
25         startswith "$file" "$include"
26     done
27     find "$base" -type f -name '*.qh' -a \! -name '_mod.qh' -print0 | sort -z | while read -r -d '' file; do
28         echo "$file"
29         startswith "$file" "#pragma once"
30     done
31 }
32
33 check client
34 check server
35 check menu
36 check common