install.sh.j2

 1#!/bin/bash
 2set -euo pipefail
 3
 4# Install runtime dependencies needed by the eval-cli binary (dynamically linked
 5# against glibc + these shared libraries from its GPUI/terminal/language stacks).
 6apt-get update
 7apt-get install -y --no-install-recommends \
 8    ca-certificates \
 9    curl \
10    git \
11    libasound2 \
12    libfontconfig1 \
13    libglib2.0-0 \
14    libsqlite3-0 \
15    libssl3 \
16    libwayland-client0 \
17    libx11-xcb1 \
18    libxkbcommon-x11-0 \
19    libzstd1
20
21# Install Node.js 22 LTS (needed by language servers like basedpyright).
22curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
23apt-get install -y --no-install-recommends nodejs
24
25# Preinstall basedpyright in Zed's language server cache to avoid first-run npm install latency.
26ZED_DATA_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/zed"
27BASEDPYRIGHT_DIR="$ZED_DATA_DIR/languages/basedpyright"
28mkdir -p "$BASEDPYRIGHT_DIR"
29npm install --prefix "$BASEDPYRIGHT_DIR" --save-exact basedpyright
30
31# Install uv (needed for running Python tests in SWE-bench tasks).
32curl -LsSf https://astral.sh/uv/install.sh | sh
33. "$HOME/.local/bin/env"
34ln -sf "$HOME/.local/bin/uv" /usr/local/bin/uv
35ln -sf "$HOME/.local/bin/uvx" /usr/local/bin/uvx
36
37{% if binary_uploaded is defined %}
38# Binary was uploaded directly via setup() — just verify it works.
39eval-cli --help
40{% elif download_url is defined %}
41curl -fsSL "{{ download_url }}" -o /usr/local/bin/eval-cli
42chmod +x /usr/local/bin/eval-cli
43eval-cli --help
44{% else %}
45echo "ERROR: No eval-cli binary provided."
46echo ""
47echo "Either pass binary_path= to upload a local build:"
48echo "  --ae binary_path=/path/to/target/release/eval-cli"
49echo ""
50echo "Or set download_url= / EVAL_CLI_DOWNLOAD_URL:"
51echo "  --ae download_url=https://example.com/eval-cli"
52exit 1
53{% endif %}
54
55echo "INSTALL_SUCCESS"