This commit is contained in:
2025-12-30 01:53:55 +01:00
commit fed2adb924
15 changed files with 522 additions and 0 deletions

13
scripts/docker-entrypoint.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
trap "echo 'Stopping...'; exit 0" SIGTERM
# source yocto
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/setup-env.sh"
# add add source to all zsh instances
#echo "souce \"${YOCTO_ROOT}(scripts/setup-env.sh\"" >> ~/.zshrc
# trap to keep container open in background
/bin/zsh
#while true; do sleep 1; done

47
scripts/setup-env.sh Executable file
View File

@@ -0,0 +1,47 @@
#!/usr/bin/env bash
set -e
# -------------------------------------------------------------------
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/setup-paths.sh"
# -------------------------------------------------------------------
# Sanity checks
if [ ! -d "${POKY_DIR}" ]; then
echo "ERROR: poky not found at ${POKY_DIR}"
return 1 2>/dev/null || exit 1
fi
# Create cache directories
mkdir -p "${DL_DIR}"
mkdir -p "${SSTATE_DIR}"
# Initialize Yocto build environment
source "${POKY_DIR}/oe-init-build-env" "${YOCTO_ROOT}/${BUILD_DIR}"
# Inject cache paths into local.conf (idempotent)
CONF_FILE="${BUILDDIR}/conf/local.conf"
START_MARKER="# >>> yocto cache (managed) >>>"
END_MARKER="# <<< yocto cache (managed) <<<"
# Remove old managed block if present
sed -i "/${START_MARKER}/,/${END_MARKER}/d" "${CONF_FILE}"
# Append managed block
cat <<EOF >> "${CONF_FILE}"
${START_MARKER}
DL_DIR = "${DL_DIR}"
SSTATE_DIR = "${SSTATE_DIR}"
${END_MARKER}
EOF
echo
echo "Yocto environment ready:"
echo " BUILD_DIR = ${BUILDDIR}"
echo " DL_DIR = ${DL_DIR}"
echo " SSTATE_DIR = ${SSTATE_DIR}"
echo

12
scripts/setup-paths.sh Normal file
View File

@@ -0,0 +1,12 @@
#!/bin/bash
# ---- Configuration -------------------------------------------------
YOCTO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
BUILD_DIR="${1:-build}"
CACHE_BASE="${YOCTO_ROOT}/.cache/yocto"
DL_DIR="${CACHE_BASE}/downloads"
SSTATE_DIR="${CACHE_BASE}/sstate"
POKY_DIR="${YOCTO_ROOT}/poky"
# -------------------------------------------------------------------

17
scripts/start-docker.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/setup-paths.sh"
# -------------------------------------------------------------------
mkdir -p "${YOCTO_ROOT}/.cache/docker/"
touch "${YOCTO_ROOT}/.cache/docker/zsh_history"
mkdir -p "${BUILD_DIR}"
mkdir -p "${DL_DIR}"
mkdir -p "${SSTATE_DIR}"
# -------------------------------------------------------------------
docker compose -f $YOCTO_ROOT/docker-compose.yaml up -d