ceos-alpine-installer/bootstrap.sh
John A. Hoeven a194c14077 Add CE OS Alpine installer v0.0.1 — Tier 0/1/2 dev scaffold
Staged installer set for Alpine Linux x86-64 (tinkerpad/ThinkPad T480).
Covers Base (Tier 0), Minimal (Tier 1), and Basic (Tier 2) tiers with
full phased structure, per-package error capture, and re-runnable test suites.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 02:25:38 +02:00

89 lines
2.8 KiB
Bash

#!/usr/bin/env bash
# Created by John A. Hoeven with the ethical assistance of Claude AI
# ---------------------------------------------------------------------------
# bootstrap.sh
# Served at: http://192.168.0.138/repo/scripts/alpine-ceos-installer/bootstrap.sh
# Version: v0.0.1 | Status: DEVELOPMENT
# Target: Alpine Linux x86-64 (tinkerpad / ThinkPad T480)
# ---------------------------------------------------------------------------
# Run this on tinkerpad to download the full CE OS installer from workbench.
# Usage: wget http://192.168.0.138/repo/scripts/alpine-ceos-installer/bootstrap.sh
# bash bootstrap.sh
#
# TODO — Forgejo: when git.jahnet.lan is deployed, replace the wget block
# below with these three lines and delete the rest of this file:
# doas apk add git
# git clone -b dev http://git.jahnet.lan/john/ceos-alpine-installer.git
# cd ceos-alpine-installer && bash ce-install.sh
# ---------------------------------------------------------------------------
BASE="http://192.168.0.138/repo/scripts/alpine-ceos-installer"
DEST="/tmp/ceos-installer-$(date +%Y%m%d%H%M%S)"
echo "CE OS Alpine Installer — Bootstrap"
echo "==================================="
echo "Source: ${BASE}"
echo "Dest: ${DEST}"
echo ""
mkdir -p \
"${DEST}/lib/base" \
"${DEST}/lib/minimal" \
"${DEST}/lib/basic" \
"${DEST}/tests"
fetch() {
local path="${1}"
if wget -q -O "${DEST}/${path}" "${BASE}/${path}"; then
echo " OK ${path}"
else
echo " ERR ${path}" >&2
echo "Bootstrap failed: could not fetch ${path}" >&2
exit 1
fi
}
echo "Fetching orchestrators..."
fetch "ce-install.sh"
fetch "ce-base.sh"
fetch "ce-minimal.sh"
fetch "ce-basic.sh"
echo "Fetching library..."
fetch "lib/ce-common.sh"
fetch "lib/base/01_core.sh"
fetch "lib/base/02_doas.sh"
echo "Fetching Tier 1 — Minimal..."
for n in 01_shell 02_terminal 03_files 04_vcs 05_systools \
06_comms 07_journal 08_web 09_network 10_record \
11_wiki 12_access; do
fetch "lib/minimal/${n}.sh"
done
echo "Fetching Tier 2 — Basic..."
for n in 01_comms 02_monitor 03_gui 04_media 05_fonts 06_utils; do
fetch "lib/basic/${n}.sh"
done
echo "Fetching tests..."
for t in test_base test_minimal test_basic; do
fetch "tests/${t}.sh"
done
find "${DEST}" -name "*.sh" -exec chmod +x {} \;
echo ""
echo "Bootstrap complete."
echo ""
echo "To install:"
echo " cd ${DEST}"
echo " bash ce-install.sh # full stack (Tier 0 + 1 + 2)"
echo " bash ce-base.sh # Tier 0 only"
echo " bash ce-minimal.sh # Tier 1 only (requires Tier 0)"
echo " bash ce-basic.sh # Tier 2 only (requires Tier 1)"
echo ""
echo "To run tests after install:"
echo " bash ${DEST}/tests/test_base.sh"
echo " bash ${DEST}/tests/test_minimal.sh"
echo " bash ${DEST}/tests/test_basic.sh"