mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-04-06 07:47:53 +10:00
- install.sh: Replace awk float comparison with integer major/minor check so Python 3.9 is correctly rejected as < 3.13 - nfpm.yaml: Add git/curl/wget as recommends so users have basic archiving tools out of the box without needing `archivebox install` - debian.yml: Restore git/curl/wget in CI smoke test to match what the package recommends, instead of relying on runner preinstalls - debian.yml: Guard release upload to skip gracefully when no GitHub Release exists (fixes workflow_dispatch failures) https://claude.ai/code/session_01Vx1EsNrNySgsc8Y67dGzCn
52 lines
2.0 KiB
Bash
Executable File
52 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# /opt/archivebox/install.sh - installs/upgrades archivebox into its virtualenv
|
|
# Called by the postinstall script and can be run manually to upgrade
|
|
|
|
set -e
|
|
|
|
ARCHIVEBOX_VENV="/opt/archivebox/venv"
|
|
ARCHIVEBOX_VERSION="${ARCHIVEBOX_VERSION:-}"
|
|
|
|
# ArchiveBox requires Python >= 3.13 (per pyproject.toml).
|
|
# Prefer python3.13 explicitly; fall back to python3 with a version check.
|
|
if command -v python3.13 >/dev/null 2>&1; then
|
|
PYTHON="python3.13"
|
|
elif command -v python3 >/dev/null 2>&1; then
|
|
PYTHON="python3"
|
|
PY_MAJOR="$("$PYTHON" -c 'import sys; print(sys.version_info.major)')"
|
|
PY_MINOR="$("$PYTHON" -c 'import sys; print(sys.version_info.minor)')"
|
|
if [ "$PY_MAJOR" -lt 3 ] || { [ "$PY_MAJOR" -eq 3 ] && [ "$PY_MINOR" -lt 13 ]; }; then
|
|
PY_VER="${PY_MAJOR}.${PY_MINOR}"
|
|
echo "[!] Error: ArchiveBox requires Python >= 3.13, but found Python $PY_VER"
|
|
echo " Install python3.13: sudo apt install python3.13 python3.13-venv"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "[!] Error: python3 not found. Install python3.13: sudo apt install python3.13 python3.13-venv"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[+] Setting up ArchiveBox virtualenv in $ARCHIVEBOX_VENV (using $PYTHON)..."
|
|
|
|
# Create the virtualenv if it doesn't exist
|
|
if [ ! -d "$ARCHIVEBOX_VENV" ]; then
|
|
"$PYTHON" -m venv "$ARCHIVEBOX_VENV"
|
|
fi
|
|
|
|
# Upgrade pip inside the virtualenv
|
|
"$ARCHIVEBOX_VENV/bin/python3" -m pip install --quiet --upgrade pip setuptools
|
|
|
|
# Install or upgrade archivebox.
|
|
# ARCHIVEBOX_VERSION is set by postinstall.sh from the .deb package version.
|
|
# When run manually without it, install the latest release from PyPI.
|
|
if [ -n "$ARCHIVEBOX_VERSION" ]; then
|
|
echo "[+] Installing archivebox==$ARCHIVEBOX_VERSION..."
|
|
"$ARCHIVEBOX_VENV/bin/pip" install --quiet --upgrade "archivebox==$ARCHIVEBOX_VERSION"
|
|
else
|
|
echo "[+] Installing latest archivebox (no version pinned)..."
|
|
"$ARCHIVEBOX_VENV/bin/pip" install --quiet --upgrade archivebox
|
|
fi
|
|
|
|
echo "[√] ArchiveBox installed successfully."
|
|
echo " Run 'archivebox version' to verify."
|