Blueforce-Linux/scripts/install/installer/modules
emirhanmamak-blueforce da460519e8 feat(install): internet-free install flow, auto-discovered local packages
The operator no longer answers an "offline?" question and no longer needs
network access: the installer finds the package set that ships with the
checkout, so the only input left is the dealer number.

Installer
- Auto-discover the local APT repository (BF_OFFLINE_REPO, then
  provisioning/offline-repo/built, then /opt/blueforce/offline-repo) and
  enter offline mode on its own; --offline stays for compatibility.
- Fail closed with an explicit Turkish message when nothing is found: the
  searched locations, what to do, and a named exit reason -- no state touched.
- Distinguish "repository absent" (operator error, actionable) from
  "repository present but invalid" (OFFLINE BLOCKED, verification gate).
- Network is informational only in precheck/network modules; no probe runs in
  offline mode and archive.ubuntu.com is no longer mandatory.

ISO builder
- Look for built/ first, which is what build-index.sh produces, and accept
  build/ as a warned legacy path. The two disagreed, so a medium could be
  built without the package set and fail only at install time.

Docs
- docs/27, scripts/install/README, provisioning/offline-repo/README and
  provisioning/firstboot/README describe the discovered flow, the two failure
  modes, and that the installer downloads nothing.

Tests
- check-admin-static exercised the "console missing from the clone" branch by
  deleting a tracked file; git clone restored it from history, so the branch
  never ran and the warning was effectively untested. Build the stripped
  source as a real commit instead; verified by mutation.
2026-09-16 16:53:24 +03:00
..
01-precheck.sh feat(install): internet-free install flow, auto-discovered local packages 2026-09-16 16:53:24 +03:00
02-system.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
03-user.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
04-hostname.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
05-network.sh feat(install): internet-free install flow, auto-discovered local packages 2026-09-16 16:53:24 +03:00
06-wireguard.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
07-ssh.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
08-rdp.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
09-rustdesk.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
10-docker.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
11-meg.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
12-monitoring.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
13-firewall.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
14-update-policy.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
15-logrotate.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
16-gui.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
17-healthcheck.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00
18-final-check.sh feat(field-os): provisioning layer, real ISO build, offline contracts 2026-09-16 11:14:42 +03:00