ladybird/Meta/lint-swift.sh
Andrew Kaster 91de0438fe
Some checks are pending
CI / Lagom (false, NO_FUZZ, ubuntu-22.04, Linux, GNU) (push) Waiting to run
CI / Lagom (false, FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-22.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Push notes / build (push) Waiting to run
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