Disable autocorrection by default, make script more independent of environment
This commit is contained in:
parent
96f4d38bab
commit
b843196f3c
|
|
@ -62,16 +62,13 @@ if has_input_files && \
|
|||
SHELL_VARIABLE="\${${SCRIPT_INPUT_FILE_VARIABLE_NAME}}"
|
||||
RESOLVED_FILE_NAME=`envsubst <<< ${SHELL_VARIABLE}`
|
||||
INPUT_FILE_NAMES=${INPUT_FILE_NAMES}${FILE_NAMES_SEPARATOR}${RESOLVED_FILE_NAME}
|
||||
|
||||
if [ ! -z ${INPUT_FILE_NAMES} ]; then
|
||||
INPUT_FILE_NAMES=${INPUT_FILE_NAMES}${FILE_NAMES_SEPARATOR}
|
||||
fi
|
||||
|
||||
INPUT_FILE_NAMES=${INPUT_FILE_NAMES}${RESOLVED_FILE_NAME}
|
||||
done
|
||||
|
||||
FILE_NAMES_SEPARATOR_LENGTH=`awk '{ print length; }' <<< "${FILE_NAMES_SEPARATOR}"`
|
||||
|
||||
if [ ${FILE_NAMES_SEPARATOR_LENGTH} -gt 0 ] && \
|
||||
[ ! -z "${INPUT_FILE_NAMES}" ]; then
|
||||
|
||||
# remove separator prefix
|
||||
INPUT_FILE_NAMES=`cut -c${FILE_NAMES_SEPARATOR_LENGTH}- <<< ${INPUT_FILE_NAMES}`
|
||||
fi
|
||||
elif has_input_file_lists; then
|
||||
for i in `seq 0 $((${SCRIPT_INPUT_FILE_LIST_COUNT}-1))`
|
||||
do
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
# Description:
|
||||
# Runs swiftlint with selected or default config file.
|
||||
# By default it runs only for modified files.
|
||||
#
|
||||
# Parameters:
|
||||
# $1 - path to swiftlint executable.
|
||||
|
|
@ -10,14 +11,15 @@
|
|||
# Required environment variables:
|
||||
# SCRIPT_DIR - directory of current script.
|
||||
# SRCROOT - project directory.
|
||||
# PODS_ROOT - cocoapods installation directory (eg. ${SRCROOT}/Pods).
|
||||
#
|
||||
# Optional environment variables:
|
||||
# SWIFTLINT_EXECUTABLE - path to swiftlint executable.
|
||||
# SWIFTLINT_CONFIG_PATH - path to swiftlint config.
|
||||
# PODS_ROOT - cocoapods installation directory (eg. ${SRCROOT}/Pods) if SWIFTLINT_EXECUTABLE or ${1} is missing
|
||||
# SCRIPT_INPUT_FILE_COUNT - number of files listed in "Input files" of build phase.
|
||||
# SCRIPT_INPUT_FILE_{N} - file path to directory that should be checked.
|
||||
# FORCE_LINT - lint all project.
|
||||
# FORCE_LINT - don't exclude not modified files.
|
||||
# AUTOCORRECT - format and fix code before lint.
|
||||
#
|
||||
# Example of usage:
|
||||
# swiftlint.sh
|
||||
|
|
@ -46,8 +48,11 @@ fi
|
|||
if [ ! -z "${FORCE_LINT}" ]; then
|
||||
# Если задана переменная FORCE_LINT, то проверяем все файлы проекта
|
||||
for SOURCE_DIR in ${SOURCES_DIRS}; do
|
||||
${SWIFTLINT_EXECUTABLE} lint --config ${SWIFTLINT_CONFIG_PATH} --fix --format ${SOURCE_DIR}
|
||||
${SWIFTLINT_EXECUTABLE} lint --config ${SWIFTLINT_CONFIG_PATH} ${SOURCE_DIR}
|
||||
if [ ! -z "${AUTOCORRECT}" ]; then
|
||||
${SWIFTLINT_EXECUTABLE} lint --config ${SWIFTLINT_CONFIG_PATH} --fix --format "${SRCROOT}/${SOURCE_DIR}"
|
||||
fi
|
||||
|
||||
${SWIFTLINT_EXECUTABLE} lint --config ${SWIFTLINT_CONFIG_PATH} "${SRCROOT}/${SOURCE_DIR}"
|
||||
done
|
||||
else
|
||||
# Xcode упадет, если будем использовать большое количество Script Input Files,
|
||||
|
|
@ -56,19 +61,24 @@ else
|
|||
# Создадим временный файл swiftlint_files с префиксом @ и в нем уже определим список файлов
|
||||
# необходимых для линтовки :)
|
||||
|
||||
lint_files_path="${SRCROOT}/build_phases/swiftlint_files"
|
||||
lint_files_path="`mktemp -d`/swiftlint_files"
|
||||
|
||||
# Если файл существует, то просто его очистим, если нет - создадим
|
||||
> ${lint_files_path}
|
||||
|
||||
# Проходимся по папкам, которые требуют линтовки
|
||||
for SOURCE_DIR in ${SOURCES_DIRS}; do
|
||||
# Путь к папке репозитория
|
||||
path_prefix="`git rev-parse --show-toplevel`/"
|
||||
LINE_PREFIX="${SRCROOT}/"
|
||||
|
||||
pushd .
|
||||
|
||||
cd ${SRCROOT} # in case of runing script outside project folder (SPM)
|
||||
|
||||
# Отбираем файлы, которые были изменены или созданы
|
||||
source_unstaged_files=$(git diff --diff-filter=d --name-only --line-prefix=${path_prefix} ${SOURCE_DIR} | grep "\.swift$")
|
||||
source_staged_files=$(git diff --diff-filter=d --name-only --line-prefix=${path_prefix} --cached ${SOURCE_DIR} | grep "\.swift$")
|
||||
source_unstaged_files=$(git diff --diff-filter=d --name-only --line-prefix=${LINE_PREFIX} ${SOURCE_DIR} | grep "\.swift$")
|
||||
source_staged_files=$(git diff --diff-filter=d --name-only --line-prefix=${LINE_PREFIX} --cached ${SOURCE_DIR} | grep "\.swift$")
|
||||
|
||||
popd
|
||||
|
||||
if [ ! -z "${source_unstaged_files}" ]; then
|
||||
echo "${source_unstaged_files}" >> ${lint_files_path}
|
||||
|
|
@ -81,6 +91,9 @@ else
|
|||
|
||||
swiftlint_files_path="@${lint_files_path}"
|
||||
|
||||
${SWIFTLINT_EXECUTABLE} lint --config ${SWIFTLINT_CONFIG_PATH} --fix --format --force-exclude --use-alternative-excluding ${swiftlint_files_path}
|
||||
if [ ! -z "${AUTOCORRECT}" ]; then
|
||||
${SWIFTLINT_EXECUTABLE} lint --config ${SWIFTLINT_CONFIG_PATH} --fix --format --force-exclude --use-alternative-excluding ${swiftlint_files_path}
|
||||
fi
|
||||
|
||||
${SWIFTLINT_EXECUTABLE} lint --config ${SWIFTLINT_CONFIG_PATH} --force-exclude --use-alternative-excluding ${swiftlint_files_path}
|
||||
fi
|
||||
|
|
|
|||
Loading…
Reference in New Issue