#!/usr/bin/env bash set -euo pipefail usage() { cat <<'EOF' Usage: start-atvm-runner.sh --build-name --runner-command [options] Options: --build-name --runner-command --workdir Default: /root/cdc-e2e-cyp-12.17.4 --log-path Default: /tmp/.log --state-root Default: /var/lib/atvm-run-watcher EOF } BUILD_NAME="" RUNNER_COMMAND="" RUNNER_WORKDIR="/root/cdc-e2e-cyp-12.17.4" RUNNER_LOG="" STATE_ROOT="/var/lib/atvm-run-watcher" while [[ $# -gt 0 ]]; do case "$1" in --build-name) BUILD_NAME="${2:-}"; shift 2 ;; --runner-command) RUNNER_COMMAND="${2:-}"; shift 2 ;; --workdir) RUNNER_WORKDIR="${2:-}"; shift 2 ;; --log-path) RUNNER_LOG="${2:-}"; shift 2 ;; --state-root) STATE_ROOT="${2:-}"; shift 2 ;; -h|--help) usage; exit 0 ;; *) echo "Unknown argument: $1" >&2; usage >&2; exit 1 ;; esac done if [[ -z "$BUILD_NAME" ]]; then echo "--build-name is required" >&2 usage >&2 exit 1 fi if [[ -z "$RUNNER_COMMAND" ]]; then echo "--runner-command is required" >&2 usage >&2 exit 1 fi if [[ -z "$RUNNER_LOG" ]]; then RUNNER_LOG="/tmp/${BUILD_NAME}.log" fi RUN_DIR="${STATE_ROOT}/${BUILD_NAME}" mkdir -p "$RUN_DIR" cat >"${RUN_DIR}/run.env" </dev/null 2>&1 || true systemctl start "atvm-runner@${BUILD_NAME}.service" systemctl status --no-pager "atvm-runner@${BUILD_NAME}.service" || true