baa-conductor


baa-conductor / scripts / runtime
im_wower  ·  2026-03-22

bootstrap.sh

 1#!/usr/bin/env bash
 2set -euo pipefail
 3
 4SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
 5# shellcheck source=./common.sh
 6source "${SCRIPT_DIR}/common.sh"
 7
 8usage() {
 9  cat <<'EOF'
10Usage:
11  scripts/runtime/bootstrap.sh [options]
12
13Options:
14  --repo-dir PATH      Runtime root to initialize. Defaults to the current checkout root.
15  --mode OCTAL         Directory mode passed to install -d. Defaults to 700.
16  --owner USER:GROUP   Optional owner to apply to each runtime directory after creation.
17  --help               Show this help text.
18EOF
19}
20
21repo_dir="${BAA_RUNTIME_REPO_DIR_DEFAULT}"
22mode="700"
23owner=""
24
25while [[ $# -gt 0 ]]; do
26  case "$1" in
27    --repo-dir)
28      repo_dir="$2"
29      shift 2
30      ;;
31    --mode)
32      mode="$2"
33      shift 2
34      ;;
35    --owner)
36      owner="$2"
37      shift 2
38      ;;
39    --help)
40      usage
41      exit 0
42      ;;
43    *)
44      die "Unknown option: $1"
45      ;;
46  esac
47done
48
49while IFS= read -r directory; do
50  ensure_directory "$directory" "$mode"
51
52  if [[ -n "$owner" ]]; then
53    chown "$owner" "$directory"
54  fi
55
56  runtime_log "ready: $directory"
57done < <(resolve_runtime_paths "$repo_dir")
58
59runtime_log "runtime bootstrap completed for ${repo_dir}"