2025-12-09 05:31:55 +01:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
2025-12-09 05:50:08 +01:00
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
# Ensure Nix has access to a valid CA bundle (TLS trust store)
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
if [[ -z "${NIX_SSL_CERT_FILE:-}" ]]; then
|
|
|
|
|
if [[ -f /etc/ssl/certs/ca-certificates.crt ]]; then
|
|
|
|
|
# Debian/Ubuntu-style path
|
|
|
|
|
export NIX_SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
|
|
|
|
|
echo "[docker] Using CA bundle: ${NIX_SSL_CERT_FILE}"
|
|
|
|
|
elif [[ -f /etc/pki/tls/certs/ca-bundle.crt ]]; then
|
|
|
|
|
# Fedora/RHEL/CentOS-style path
|
|
|
|
|
export NIX_SSL_CERT_FILE=/etc/pki/tls/certs/ca-bundle.crt
|
|
|
|
|
echo "[docker] Using CA bundle: ${NIX_SSL_CERT_FILE}"
|
|
|
|
|
else
|
|
|
|
|
echo "[docker] WARNING: No CA bundle found for Nix (NIX_SSL_CERT_FILE not set)."
|
|
|
|
|
echo "[docker] HTTPS access for Nix flakes may fail."
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
2025-12-09 05:31:55 +01:00
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
|
|
|
|
|
|
echo "[docker] Starting package-manager container"
|
|
|
|
|
|
2025-12-09 05:50:08 +01:00
|
|
|
# Distro info for logging
|
2025-12-09 05:31:55 +01:00
|
|
|
if [[ -f /etc/os-release ]]; then
|
|
|
|
|
# shellcheck disable=SC1091
|
|
|
|
|
. /etc/os-release
|
|
|
|
|
echo "[docker] Detected distro: ${ID:-unknown} (like: ${ID_LIKE:-})"
|
|
|
|
|
fi
|
|
|
|
|
|
2025-12-09 05:50:08 +01:00
|
|
|
# Always use /src (mounted from host) as working directory
|
2025-12-09 05:31:55 +01:00
|
|
|
echo "[docker] Using /src as working directory"
|
|
|
|
|
cd /src
|
|
|
|
|
|
|
|
|
|
# ------------------------------------------------------------
|
2025-12-09 05:50:08 +01:00
|
|
|
# DEV mode: build/install package-manager from current /src
|
2025-12-09 05:31:55 +01:00
|
|
|
# ------------------------------------------------------------
|
|
|
|
|
if [[ "${PKGMGR_DEV:-0}" == "1" ]]; then
|
|
|
|
|
echo "[docker] DEV mode enabled (PKGMGR_DEV=1)"
|
|
|
|
|
echo "[docker] Rebuilding package-manager from /src via scripts/installation/run-package.sh..."
|
|
|
|
|
|
|
|
|
|
if [[ -x scripts/installation/run-package.sh ]]; then
|
|
|
|
|
bash scripts/installation/run-package.sh
|
|
|
|
|
else
|
|
|
|
|
echo "[docker] ERROR: scripts/installation/run-package.sh not found or not executable"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# ------------------------------------------------------------
|
2025-12-09 05:50:08 +01:00
|
|
|
# Hand-off to pkgmgr / arbitrary command
|
2025-12-09 05:31:55 +01:00
|
|
|
# ------------------------------------------------------------
|
|
|
|
|
if [[ $# -eq 0 ]]; then
|
|
|
|
|
echo "[docker] No arguments provided. Showing pkgmgr help..."
|
|
|
|
|
exec pkgmgr --help
|
|
|
|
|
else
|
|
|
|
|
echo "[docker] Executing command: $*"
|
|
|
|
|
exec "$@"
|
|
|
|
|
fi
|