-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·59 lines (51 loc) · 1.76 KB
/
Copy pathinstall.sh
File metadata and controls
executable file
·59 lines (51 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/bash
# Install agent-swift — macOS only
set -euo pipefail
REPO="beastoin/agent-swift"
INSTALL_DIR="${INSTALL_DIR:-/usr/local/bin}"
# Check macOS
if [[ "$(uname)" != "Darwin" ]]; then
echo "Error: agent-swift only runs on macOS" >&2
exit 1
fi
# Get latest version
echo "Fetching latest release..."
VERSION=$(curl -sI "https://github.com/${REPO}/releases/latest" | grep -i "^location:" | sed 's/.*tag\/v//' | tr -d '\r\n')
if [[ -z "$VERSION" ]]; then
echo "Error: Could not determine latest version" >&2
exit 1
fi
TARBALL="agent-swift-${VERSION}-macos-universal.tar.gz"
URL="https://github.com/${REPO}/releases/download/v${VERSION}/${TARBALL}"
# Download
echo "Downloading agent-swift v${VERSION}..."
TMPDIR=$(mktemp -d)
trap 'rm -rf "$TMPDIR"' EXIT
curl -sL "$URL" -o "${TMPDIR}/${TARBALL}"
# Verify SHA256
echo "Verifying checksum..."
curl -sL "${URL}.sha256" -o "${TMPDIR}/expected.sha256"
EXPECTED=$(cat "${TMPDIR}/expected.sha256" | awk '{print $1}')
ACTUAL=$(shasum -a 256 "${TMPDIR}/${TARBALL}" | awk '{print $1}')
if [[ "$EXPECTED" != "$ACTUAL" ]]; then
echo "Error: Checksum mismatch" >&2
echo " Expected: ${EXPECTED}" >&2
echo " Got: ${ACTUAL}" >&2
exit 1
fi
# Extract and install
echo "Installing to ${INSTALL_DIR}..."
tar -xzf "${TMPDIR}/${TARBALL}" -C "${TMPDIR}"
mkdir -p "${INSTALL_DIR}" 2>/dev/null || sudo mkdir -p "${INSTALL_DIR}"
if [[ -w "$INSTALL_DIR" ]]; then
mv "${TMPDIR}/agent-swift" "${INSTALL_DIR}/agent-swift"
else
sudo mv "${TMPDIR}/agent-swift" "${INSTALL_DIR}/agent-swift"
fi
chmod +x "${INSTALL_DIR}/agent-swift"
echo "agent-swift v${VERSION} installed to ${INSTALL_DIR}/agent-swift"
echo ""
echo "Usage:"
echo " agent-swift doctor"
echo " agent-swift connect --bundle-id com.apple.TextEdit"
echo " agent-swift snapshot -i"