ceos-alpine-installer/lib/minimal/12_access.sh
John A. Hoeven e1ee30812f Fix first real-hardware install issues from tinkerpad run
- bootstrap: install bash before fetch (ash-only base installs)
- bootstrap/deploy: correct URL (drop /repo prefix, webroot is /srv/repo)
- 01_core: remove bash (bootstrap now handles it)
- ce-base/minimal/basic: BusyBox-compatible df check (drop --output=avail)
- ce-common: add ensure_testing_repo + install_pkg_testing
- 12_access: espeakup + espeakup-openrc from edge/testing
- 05_fonts: nerd-fonts → nerd-fonts-all (meta-package blocks by design)
- 06_utils: tealdeer + bash-completion from edge/testing
- 07_journal: jrnl test checks ~/.local/bin/jrnl (pipx not in PATH during install)
- 11_wiki: arch-aware CE_REPO (${ARCH} replaces hardcoded amd64); Forgejo TODO updated

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 21:55:21 +02:00

53 lines
2.3 KiB
Bash

#!/usr/bin/env bash
# Created by John A. Hoeven with the ethical assistance of Claude AI
# ---------------------------------------------------------------------------
# 12_access.sh
# ~/projects/ceos/alpine-installer/lib/minimal/12_access.sh
# Version: v0.0.1 | Status: DEVELOPMENT
# Target: Alpine Linux x86-64 (tinkerpad / ThinkPad T480)
# ---------------------------------------------------------------------------
# Minimal Tier subscript: accessibility — espeak-ng, espeakup, speech-dispatcher.
# espeak conflict trap: removes espeak before installing espeak-ng.
# espeakup: repo-verified before install (package availability varies by release).
# speech-dispatcher: @edge, warn-on-fail.
# ly login manager: aarch64 CE repo only — SKIPPED on x86-64 with notice.
# Defines install_minimal_access().
# ---------------------------------------------------------------------------
install_minimal_access() {
log_info "--- minimal/12_access: accessibility ---"
# espeak conflict trap — must run before espeak-ng install
if doas apk info -e espeak >> "${LOG_FILE}" 2>&1; then
log_info "Removing conflicting 'espeak' package before installing espeak-ng..."
doas apk del espeak >> "${LOG_FILE}" 2>&1 \
|| log_warn "Could not remove espeak — espeak-ng may conflict"
fi
install_pkg "espeak-ng"
run_test "espeak-ng present" 'command -v espeak-ng >/dev/null 2>&1' warn
# espeakup — in edge/testing; also install espeakup-openrc for service management
ensure_testing_repo
install_pkg_testing "espeakup"
install_pkg_testing "espeakup-openrc"
# speech-dispatcher — edge package
ensure_edge_repo
install_pkg_edge "speech-dispatcher"
# ly login manager — CE repo, aarch64 only — skip on x86-64
if [[ "${ARCH}" == "x86_64" ]]; then
log_info "NOTICE: ly login manager — CE repo aarch64 only, not available for x86-64 — skipped"
MANUAL_PKGS+=("ly: aarch64 CE repo only — not available for x86-64 (${ARCH})")
fi
}
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
SCRIPT_NAME="12_access"
source "${SCRIPT_DIR}/lib/ce-common.sh" || { echo "ERROR: ce-common.sh not found"; exit 1; }
check_not_root
install_minimal_access
print_summary
fi