Skip to content

Commit cf86c3c

Browse files
committed
feat(Experimental): Precompiled swift-format
1 parent 268dd5c commit cf86c3c

File tree

3 files changed

+23
-18
lines changed

3 files changed

+23
-18
lines changed

.github/workflows/Format.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ on:
44
push:
55
branches:
66
- main
7+
- experimental/swift-format
78

89
jobs:
910
swift_format:

Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
install_formatter:
2-
./scripts/install_swift-format
2+
@chmod +x ./scripts/install_swift-format.sh
3+
@./scripts/install_swift-format.sh
34

45
format:
5-
./Scripts/.bin/swift-format \
6+
./scripts/.bin/swift-format \
67
--in-place --recursive \
78
./Package.swift ./Sources ./Tests
89

Scripts/install_swift-format renamed to Scripts/install_swift-format.sh

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,33 @@ _get_parent_dir_abs_path() {
77
# ––––––––––––––––––––––––––– Config –––––––––––––––––––––––––––
88

99
TOOL_NAME="swift-format"
10-
TOOL_OWNER="apple"
10+
TOOL_OWNER="CaptureContext"
1111
TOOL_VERSION="0.50600.1"
1212

1313
# ––––––––––––––––––––––––– Constants ––––––––––––––––––––––––––
1414

1515
SCRIPT_DIR=$(_get_parent_dir_abs_path $0)
1616
TOOLS_INSTALL_PATH="${SCRIPT_DIR}/.bin"
1717
TOOL_INSTALL_PATH="${TOOLS_INSTALL_PATH}/${TOOL_NAME}"
18-
TEMP_INSTALL_PATH="${TOOLS_INSTALL_PATH}/install-${TOOL_NAME}"
18+
TOOL_DOWNLOAD_DIR="${TOOLS_INSTALL_PATH}/_${TOOL_NAME}"
19+
20+
TOOL=${TOOL_INSTALL_PATH}
21+
TOOL_REPO="https://github.com/${TOOL_OWNER}/${TOOL_NAME}"
22+
ARCHIVE_NAME="x86_64"
23+
ARCHIVE_URL="${TOOL_REPO}/releases/download/0.50600.1/${ARCHIVE_NAME}.zip" # todo: support other archs
1924

2025
# ––––––––––––––––––––––––––– Steps ––––––––––––––––––––––––––––
2126

2227
tool_fetch() {
23-
git clone "https://github.com/${TOOL_OWNER}/${TOOL_NAME}.git"
24-
cd "${TOOL_NAME}"
25-
git checkout "tags/${TOOL_VERSION}"
28+
curl -L ${ARCHIVE_URL} -o "${TOOL_DOWNLOAD_DIR}/${ARCHIVE_NAME}.zip"
2629
}
2730

28-
tool_build() {
29-
swift build --product="${TOOL_NAME}" -c release --disable-sandbox --build-path '.build'
31+
tool_extract() {
32+
unzip "${TOOL_DOWNLOAD_DIR}/${ARCHIVE_NAME}.zip" -d ${TOOL_DOWNLOAD_DIR}
3033
}
3134

3235
tool_install() {
33-
install "${TEMP_INSTALL_PATH}/${TOOL_NAME}/.build/release/${TOOL_NAME}" "${TOOLS_INSTALL_PATH}"
36+
install "${TOOL_DOWNLOAD_DIR}/${ARCHIVE_NAME}/${TOOL_NAME}" "${TOOLS_INSTALL_PATH}"
3437
}
3538

3639
# ––––––––––––––––––––––––––– Script –––––––––––––––––––––––––––
@@ -42,20 +45,20 @@ log() {
4245
printf "\n$1 ${set_bold}$2${set_normal}\n"
4346
}
4447

45-
_trap_exit() {
46-
rm -rf "${TEMP_INSTALL_PATH}"
48+
clean_up() {
49+
rm -rf "${TOOL_DOWNLOAD_DIR}"
4750
}
4851

4952
set -e
50-
trap _trap_exit err exit SIGTERM SIGINT
53+
trap clean_up err exit SIGTERM SIGINT
5154

5255
if [ -f "${TOOL_INSTALL_PATH}" ]; then
5356
log "⚠️" " ${TOOL_NAME} already installed"
5457
exit 0
5558
fi
5659

57-
if [ ! -d "${TEMP_INSTALL_PATH}" ]; then
58-
mkdir -p "${TEMP_INSTALL_PATH}"
60+
if [ ! -d "${TOOL_DOWNLOAD_DIR}" ]; then
61+
mkdir -p "${TOOL_DOWNLOAD_DIR}"
5962
fi
6063

6164
cd "${TEMP_INSTALL_PATH}"
@@ -64,16 +67,16 @@ log "⬇️" " Fetching ${TOOL_NAME}...\n"
6467

6568
tool_fetch
6669

67-
log "🔨" "Building ${TOOL_NAME}...\n"
70+
log "📦" " Extracting ${TOOL_NAME}...\n"
6871

69-
tool_build
72+
tool_extract
7073

7174
log "♻️" " Installing ${TOOL_NAME}..."
7275

7376
tool_install
7477

7578
log "💧" "Performing cleanup..."
76-
rm -rf "${TEMP_INSTALL_PATH}"
79+
clean_up
7780

7881
if [ -f "${TOOL_INSTALL_PATH}" ]; then
7982
log "" "${TOOL_NAME} successfully installed"

0 commit comments

Comments
 (0)