#!/usr/bin/env bash set -Eeuo pipefail SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P) PROJECT_DIR=$(cd -- "$SCRIPT_DIR/.." && pwd -P) IDENTITY="$PROJECT_DIR/image/overlay/usr/local/sbin/rk1-media-identity" UNIT="$PROJECT_DIR/image/overlay/etc/systemd/system/rk1-media-identity.service" DROPIN="$PROJECT_DIR/image/overlay/etc/systemd/system/ssh.service.d/10-rk1-media-identity.conf" runtime_line=$(grep -nF 'install -d -o root -g root -m 0755 /run/sshd' "$IDENTITY" | cut -d: -f1) validation_line=$(grep -nF '/usr/sbin/sshd -t' "$IDENTITY" | cut -d: -f1) [[ -n "$runtime_line" && -n "$validation_line" && "$runtime_line" -lt "$validation_line" ]] || { echo 'SSH runtime directory is not created before configuration validation' >&2 exit 1 } grep -qx 'RuntimeDirectory=sshd' "$UNIT" grep -qx 'RuntimeDirectoryMode=0755' "$UNIT" grep -qx 'Requires=rk1-media-identity.service' "$DROPIN" grep -qx 'After=rk1-media-identity.service' "$DROPIN" echo 'PASS: first-boot SSH runtime ordering regression'