49 lines
1.5 KiB
Bash
Executable File
49 lines
1.5 KiB
Bash
Executable File
#!/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
|