3cd7837b1f
Just a small fix to include proper llama-swap binary when building the arm64 architecture.
67 lines
2.1 KiB
Bash
Executable File
67 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Install llama-swap - download latest release binary from GitHub
|
|
# Usage: ./install-llama-swap.sh [version]
|
|
# version: release version number (e.g., "170") or "latest" (default)
|
|
set -e
|
|
|
|
VERSION="${1:-latest}"
|
|
REPO="mostlygeek/llama-swap"
|
|
|
|
mkdir -p /install/bin
|
|
|
|
# If a full commit hash is given, find the release tag that points to it
|
|
if echo "${VERSION}" | grep -qE '^[0-9a-f]{40}$'; then
|
|
echo "=== Resolving commit ${VERSION:0:7} to release tag ==="
|
|
TAG=$(git ls-remote --tags "https://github.com/${REPO}.git" 2>/dev/null \
|
|
| grep "^${VERSION}" | sed 's|.*refs/tags/||' | grep -v '\^{}' | head -1)
|
|
if [ -n "${TAG}" ]; then
|
|
echo "Resolved to tag: ${TAG}"
|
|
VERSION="${TAG#v}"
|
|
else
|
|
echo "No release tag found for commit ${VERSION:0:7}, using latest"
|
|
VERSION="latest"
|
|
fi
|
|
fi
|
|
|
|
# Strip leading 'v' prefix so both "198" and "v198" work
|
|
VERSION="${VERSION#v}"
|
|
|
|
# Resolve "latest" to actual version number
|
|
if [ "$VERSION" = "latest" ]; then
|
|
echo "=== Resolving latest llama-swap release ==="
|
|
VERSION=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" \
|
|
| grep '"tag_name"' | head -1 | cut -d'"' -f4 | sed 's/^v//')
|
|
if [ -z "$VERSION" ]; then
|
|
echo "FATAL: Could not determine latest release version" >&2
|
|
exit 1
|
|
fi
|
|
echo "Latest version: ${VERSION}"
|
|
fi
|
|
|
|
|
|
ARCH=$(uname -m)
|
|
case "$ARCH" in
|
|
x86_64) ARCH="amd64" ;;
|
|
aarch64|arm64) ARCH="arm64" ;;
|
|
*) echo "FATAL: Unsupported architecture: $ARCH" >&2; exit 1 ;;
|
|
esac
|
|
|
|
# Download and extract
|
|
URL="https://github.com/${REPO}/releases/download/v${VERSION}/llama-swap_${VERSION}_linux_${ARCH}.tar.gz"
|
|
echo "=== Downloading llama-swap v${VERSION} ==="
|
|
echo "URL: $URL"
|
|
curl -fSL -o /tmp/llama-swap.tar.gz "$URL"
|
|
tar -xzf /tmp/llama-swap.tar.gz -C /install/bin/
|
|
rm /tmp/llama-swap.tar.gz
|
|
|
|
# Validate
|
|
if [ ! -x "/install/bin/llama-swap" ]; then
|
|
echo "FATAL: llama-swap binary not found or not executable" >&2
|
|
ls -la /install/bin/ >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "$VERSION" > /install/llama-swap-version
|
|
|
|
echo "=== llama-swap v${VERSION} installed ==="
|
|
ls -la /install/bin/llama-swap |