Add Swiftlint
This commit is contained in:
48
script/swiftlint.sh
Executable file
48
script/swiftlint.sh
Executable file
@ -0,0 +1,48 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Go to git repo root level
|
||||
cd $(git rev-parse --show-toplevel)
|
||||
|
||||
if [[ "$BUILD_DIR" == *"IBDesignables"* ]] || [[ "$BUILD_DIR" == *"Previews"* ]] ; then
|
||||
echo "not linting for IBDesignables/SwiftUI Previews builds";
|
||||
exit 0
|
||||
fi
|
||||
|
||||
SWIFT_LINT=$(which swiftlint)
|
||||
|
||||
if [[ -z $SWIFT_LINT ]] ; then
|
||||
echo "warning: SwiftLint not installed, please download it from https://github.com/realm/SwiftLint"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ $RUN_CLANG_STATIC_ANALYZER == "YES" ]] ; then
|
||||
time $SWIFT_LINT
|
||||
else
|
||||
COUNT=0
|
||||
|
||||
##### Check for modified git files #####
|
||||
FILES=$(git diff --name-only | grep -iv "^carthage" | grep -iv "^pods" | grep -iv "^vendor" | grep -v "R2" | grep ".swift$")
|
||||
if [ ! -z "$FILES" ]; then
|
||||
while read FILE_PATH; do
|
||||
export SCRIPT_INPUT_FILE_$COUNT=$FILE_PATH
|
||||
COUNT=$((COUNT + 1))
|
||||
done <<< "$FILES"
|
||||
fi
|
||||
|
||||
##### Check for modified files in unstaged/Staged area #####
|
||||
FILES=$(git diff --name-only --cached --diff-filter=d | grep -iv "^carthage" | grep -iv "^pods" | grep -iv "^vendor" | grep -v "R2" | grep ".swift$")
|
||||
if [ ! -z "$FILES" ]; then
|
||||
while read FILE_PATH; do
|
||||
export SCRIPT_INPUT_FILE_$COUNT=$FILE_PATH
|
||||
COUNT=$((COUNT + 1))
|
||||
done <<< "$FILES"
|
||||
fi
|
||||
|
||||
##### Make the count avilable as global variable #####
|
||||
export SCRIPT_INPUT_FILE_COUNT=$COUNT
|
||||
env | grep SCRIPT_INPUT_FILE_
|
||||
|
||||
if [[ COUNT -ne 0 ]] ; then
|
||||
time $SWIFT_LINT --use-script-input-files
|
||||
fi
|
||||
fi
|
Reference in New Issue
Block a user