#!/usr/bin/env sh # Mosaic Bootstrap — Remote Installer (POSIX) # # One-liner: # curl -sL https://git.mosaicstack.dev/mosaic/bootstrap/raw/branch/main/remote-install.sh | sh # # Or with wget: # wget -qO- https://git.mosaicstack.dev/mosaic/bootstrap/raw/branch/main/remote-install.sh | sh # set -eu ARCHIVE_URL="https://git.mosaicstack.dev/mosaic/bootstrap/archive/main.tar.gz" TMPDIR_BASE="${TMPDIR:-/tmp}" WORK_DIR="$TMPDIR_BASE/mosaic-bootstrap-$$" cleanup() { rm -rf "$WORK_DIR" } trap cleanup EXIT echo "[mosaic] Downloading bootstrap archive..." mkdir -p "$WORK_DIR" if command -v curl >/dev/null 2>&1; then curl -sL "$ARCHIVE_URL" | tar xz -C "$WORK_DIR" elif command -v wget >/dev/null 2>&1; then wget -qO- "$ARCHIVE_URL" | tar xz -C "$WORK_DIR" else echo "[mosaic] ERROR: curl or wget required" >&2 exit 1 fi if [ ! -f "$WORK_DIR/bootstrap/install.sh" ]; then echo "[mosaic] ERROR: install.sh not found in archive" >&2 exit 1 fi echo "[mosaic] Running install..." cd "$WORK_DIR/bootstrap" bash install.sh echo "[mosaic] Cleaning up temporary files..." # cleanup runs via trap