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}"