Files
NexusOS/install.sh
jonandClaude Opus 4.8 ee6e5bead7 Replace stale bin/install.sh with a wrapper over sync.py restore
bin/install.sh still rsynced --delete from a backup path retired in July, so
the documented Linux install both failed and could erase a working tree. Every
step it claimed to do already lives in bin/sync.py, shared with Windows.

Root ./install.sh is now a thin wrapper over `sync.py restore`, so deployment
stays one bash command. It also registers ncp/promethean in ~/.bashrc, which
was the only thing the old script uniquely did.

Split restore-linux.sh into runtime (Ollama binary, shell aliases) and desktop
(XFCE panel, theme, os-release). Only desktop writes outside the repo, it now
auto-skips off XFCE, and `--no-desktop` skips it explicitly. Two tests keep the
stage names in sync and the $HOME writes confined to the desktop stage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 08:46:46 -05:00

27 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# NexusOS installer, Linux. One painless command:
#
# git clone <repo> nexus-core && cd nexus-core && ./install.sh
#
# ponytail: a wrapper, not an installer. Every step - git pull, venv, pip with
# the right GPU overlay, npm build, apt packages, Ollama binary, desktop wiring
# - lives in bin/sync.py, shared with native Windows. Duplicating any of it here
# means two installers drifting apart, which is exactly how the old
# bin/install.sh ended up rsyncing from a backup path retired months earlier.
# Re-run it any time to update; --check dry-runs it. Windows: install-windows.ps1.
set -euo pipefail
cd "$(dirname "$0")"
if ! command -v python3 >/dev/null; then
echo "python3 is required (it runs the installer). Install it, then re-run:" >&2
echo " sudo apt-get install -y python3 python3-venv" >&2
exit 1
fi
# Prefer the venv interpreter once it exists, same as ncp does; python3 is the
# bootstrap case on a fresh clone. sync.py is stdlib-only either way.
py=Promethean/bin/python
[ -x "$py" ] || py=python3
exec "$py" bin/sync.py restore "$@"