ladybird/Meta/lint-swift.sh
Andrew Kaster 91de0438fe Meta: Add swift-format linter script
swift-format is available in the Xcode 16 Beta and homebrew.
We will need some extra docs to tell Linux developers how to get it on
their distribution.

This also makes use of the fact that you can pass git diff a colon
delimited pattern to include ':*pattern' or exclude ':!*pattern'
matching files, which is pretty neat.
2024-10-01 13:33:05 -06:00

33 lines
819 B
Bash
Executable file

#!/usr/bin/env bash
set -e
script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd "${script_path}/.." || exit 1
if [ "$#" -eq "0" ]; then
files=()
while IFS= read -r file; do
files+=("$file")
done < <(
git ls-files '*.swift'
)
else
files=()
for file in "$@"; do
if [[ "${file}" == *".swift" ]] ; then
files+=("${file}")
fi
done
fi
if (( ${#files[@]} )); then
if ! command -v swift-format >/dev/null 2>&1 ; then
echo "swift-format is not available, but Swift files need linting! Either skip this script, or install swift-format."
exit 1
fi
swift-format -i "${files[@]}"
echo "Maybe some files have changed. Sorry, but swift-format doesn't indicate what happened."
else
echo "No .swift files to check."
fi