diff options
Diffstat (limited to 'util/rules_cleaner.sh')
-rwxr-xr-x | util/rules_cleaner.sh | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/util/rules_cleaner.sh b/util/rules_cleaner.sh new file mode 100755 index 000000000..ac27c2b09 --- /dev/null +++ b/util/rules_cleaner.sh | |||
@@ -0,0 +1,40 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | # This script finds all rules.mk files in keyboards/ subdirectories, | ||
4 | # and deletes the build option filesize impacts from them. | ||
5 | |||
6 | # Print an error message with the word "ERROR" in red. | ||
7 | echo_error() { | ||
8 | echo -e "[\033[0;91mERROR\033[m]: $1" | ||
9 | } | ||
10 | |||
11 | # If we've been started from util/, we want to be in qmk_firmware/ | ||
12 | [[ "$PWD" == *util ]] && cd .. | ||
13 | |||
14 | # The root qmk_firmware/ directory should have a subdirectory called quantum/ | ||
15 | if [ ! -d "quantum" ]; then | ||
16 | echo_error "Could not detect the QMK firmware directory!" | ||
17 | echo_error "Are you sure you're in the right place?" | ||
18 | exit 1 | ||
19 | fi | ||
20 | |||
21 | # Set the inplace editing parameter for sed. | ||
22 | # macOS/BSD sed expects a file extension immediately following -i. | ||
23 | set_sed_i() { | ||
24 | sed_i=(-i) | ||
25 | |||
26 | case $(uname -a) in | ||
27 | *Darwin*) sed_i=(-i "") | ||
28 | esac | ||
29 | } | ||
30 | set_sed_i | ||
31 | |||
32 | # Exclude keyamps/ directories | ||
33 | files=$(find keyboards -type f -name 'rules.mk' -not \( -path '*/keymaps*' -prune \)) | ||
34 | |||
35 | # Edit rules.mk files | ||
36 | for file in $files; do | ||
37 | sed "${sed_i[@]}" -e "s/(+[0-9].*)$//g" "$file" | ||
38 | done | ||
39 | |||
40 | echo "Cleaned up rules.mk files." | ||