Skip to content

Commit be9e9c8

Browse files
swift / arch validated
1 parent f99799e commit be9e9c8

2 files changed

Lines changed: 51 additions & 4 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,6 @@ node_modules.bak
9191
# Sentry React Native Monorepo
9292
/packages/core/README.md
9393
.env.sentry-build-plugin
94+
95+
# SwiftLint
96+
swiftlint/*

scripts/swiftlint.sh

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,59 @@ fi
1111
# Set the mode based on the first argument
1212
mode=$1
1313

14-
DARWIN_PATH="$(dirname "$0")/../node_modules/@expo/swiftlint/bin/darwin-arm64/swiftlint"
15-
LINUX_PATH="$(dirname "$0")/../node_modules/@expo/swiftlint/bin/linux-x64/swiftlint"
14+
SWIFT_PATH=$(which swift 2>/dev/null || true)
15+
16+
if [ -z "$SWIFT_PATH" ]; then
17+
echo "SwiftLint requires swift, which is not installed or not found in PATH"
18+
echo "To install Swift:"
19+
echo " * macOS: brew install swift"
20+
echo " * ubuntu: follow steps here: https://www.swift.org/install/"
21+
echo " * arch: yay -S swift-bin"
22+
exit 1
23+
fi
24+
25+
26+
27+
LINUX_BIN="https://github.com/realm/SwiftLint/releases/download/0.61.0/swiftlint_linux_amd64.zip"
28+
LINUX_SHA="sha256:02f4f580bbb27fb618dbfa24ce2f14c926461c85c26941289f58340151b63ae4"
29+
DARWIN_BIN="https://github.com/realm/SwiftLint/releases/download/0.61.0/portable_swiftlint.zip"
30+
DARWIN_SHA="sha256:2342f3784307a02117e18f745fcd350c6acc6cab0e521c0c0e01c32a53a3b274"
1631

1732
if [[ "$OSTYPE" == "darwin"* ]]; then
18-
CMD="$DARWIN_PATH"
33+
EXPECTED_SHA="$DARWIN_SHA"
34+
EXPECTED_BIN="$DARWIN_BIN"
35+
else
36+
EXPECTED_SHA="$LINUX_SHA"
37+
EXPECTED_BIN="$LINUX_BIN"
38+
fi
39+
40+
# Make ../swiftlint folder if it doesn't exist
41+
SWIFTLINT_DIR="$(dirname "$0")/../swiftlint"
42+
mkdir -p "$SWIFTLINT_DIR"
43+
44+
# Skip download if sha256sum swiftlint.sha matches EXPECTED_SHA
45+
SHA_FILE="$SWIFTLINT_DIR/swiftlint.sha"
46+
if [ -f "$SHA_FILE" ] && [ "$(cat "$SHA_FILE")" = "$EXPECTED_SHA" ]; then
47+
echo "SwiftLint already downloaded and verified."
1948
else
20-
CMD="$LINUX_PATH"
49+
echo "Clearing swiftlint folder..."
50+
rm -rf "$SWIFTLINT_DIR"/*
51+
52+
echo "Downloading SwiftLint..."
53+
curl -L "$EXPECTED_BIN" -o "$SWIFTLINT_DIR/swiftlint.zip"
54+
unzip "$SWIFTLINT_DIR/swiftlint.zip" -d "$SWIFTLINT_DIR"
55+
# Save sha256sum of swiftlint.zip to ../swiftlint/swiftlint.sha
56+
echo "$EXPECTED_SHA" > "$SHA_FILE"
57+
# Remove swiftlint.zip
58+
rm "$SWIFTLINT_DIR/swiftlint.zip"
2159
fi
2260

61+
62+
DARWIN_PATH="$(dirname "$0")/../node_modules/@expo/swiftlint/bin/darwin-arm64/swiftlint"
63+
LINUX_PATH="$(dirname "$0")/../node_modules/@expo/swiftlint/bin/linux-x64/swiftlint"
64+
65+
CMD="$(dirname "$0")/../swiftlint/swiftlint"
66+
2367
if [ "$mode" = "fix" ]; then
2468
$CMD --fix
2569
elif [ "$mode" = "lint" ]; then

0 commit comments

Comments
 (0)