-
Notifications
You must be signed in to change notification settings - Fork 177
/
format-objc-mobuild
executable file
·46 lines (37 loc) · 1.6 KB
/
format-objc-mobuild
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
#!/usr/bin/env bash
#
# Used by the build system to check formatting, and fail the build if changed files in a pull request are unformatted.
# Takes a SHA argument, used to diff against in order to generate the list of files to inspect.
# Copyright 2015 Square, Inc
IFS=$'\n'
# The full path to the formatting scripts.
export CDPATH=""
DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
# The (assumed) relative path to the scripts from the repo.
# It would be better to search for this location, but it's made more difficult since this could be located as a sibling dependency for some repos.
RELATIVE_SCRIPTS_DIR="Pods/spacecommander"
source "$DIR"/lib/common-lib.sh
objc_files=$(objc_files_to_format "$1")
[ -z "$objc_files" ] && exit 0
function format_objc() {
success=0
for file in $objc_files; do
difference=$("$DIR"/format-objc-file-dry-run.sh "$file" | diff -q "$file" - | wc -l)
if [ $difference -gt 0 ]; then
echo "$RELATIVE_SCRIPTS_DIR/format-objc-file.sh '$file' && git add '$file';"
success=1
fi
done
return $success
}
success=0
echo -e "\n#### Checking Objective-C Code Formatting ####\n"
format_objc || (echo -e "There were formatting issues with this commit, fix by running the above commands." && success=1)
if [ $success -eq 0 ]; then
echo -e "\n#### Objective-C Code Formatting: APPROVED ####\n"
else
echo -e "\nOr, fixup files and stage them by running:\n\t$RELATIVE_SCRIPTS_DIR/format-objc-files.sh -s $1"
echo -e "\t(make sure you've installed the formatting checks first: $RELATIVE_SCRIPTS_DIR/setup-repo.sh )"
echo -e "\n#### Objective-C Code Formatting: FAILED ####\n"
fi
exit $success