feat: add boot option for native runners configuration

This commit is contained in:
S
2026-03-01 08:24:38 -05:00
parent 5341447acb
commit 457b9f82db

View File

@@ -179,6 +179,10 @@ prompt_field() {
if validate_docker_memory "$value"; then break; fi if validate_docker_memory "$value"; then break; fi
printf '%b Invalid: must be Docker memory format (e.g. 2g, 512m) or empty%b\n' "$C_RED" "$C_RESET" printf '%b Invalid: must be Docker memory format (e.g. 2g, 512m) or empty%b\n' "$C_RED" "$C_RESET"
;; ;;
bool)
if [[ "$value" == "true" || "$value" == "false" ]]; then break; fi
printf '%b Invalid: must be "true" or "false"%b\n' "$C_RED" "$C_RESET"
;;
ip) ip)
if validate_ip "$value"; then break; fi if validate_ip "$value"; then break; fi
printf '%b Invalid IP address format (expected: x.x.x.x)%b\n' "$C_RED" "$C_RESET" printf '%b Invalid IP address format (expected: x.x.x.x)%b\n' "$C_RED" "$C_RESET"
@@ -258,10 +262,10 @@ fi
# Prompt count per runner: # Prompt count per runner:
# name(1) + host(1) + type(1) + data_path(1) + labels(1) + default_image(1) + # name(1) + host(1) + type(1) + data_path(1) + labels(1) + default_image(1) +
# repos(1) + capacity(1) + cpu(1) + memory(1) = 10 # repos(1) + capacity(1) + cpu(1) + memory(1) + boot(1) = 11
# Custom host adds: ssh_host(1) + ssh_user(1) + ssh_port(1) + ssh_key(1) = 4 # Custom host adds: ssh_host(1) + ssh_user(1) + ssh_port(1) + ssh_key(1) = 4
# We estimate max 10 per runner for progress display # We estimate max 11 per runner for progress display
TOTAL_PROMPTS=$((runner_count * 10)) TOTAL_PROMPTS=$((runner_count * 11))
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# Configure runner definitions # Configure runner definitions
@@ -458,6 +462,23 @@ for ((i = 0; i < runner_count; i++)); do
save_runner_field "$r_name" "memory" "" save_runner_field "$r_name" "memory" ""
CURRENT_PROMPT=$((CURRENT_PROMPT + 1)) CURRENT_PROMPT=$((CURRENT_PROMPT + 1))
fi fi
# --- boot (skip for docker — only applies to native macOS runners) ---
# boot=true installs the launchd plist to /Library/LaunchDaemons/ (starts at
# boot before login, requires sudo). boot=false installs to ~/Library/LaunchAgents/
# (starts at login, no sudo needed).
if [[ "$r_type" == "native" ]]; then
boot_default=""
if [[ -n "$ex_name" ]]; then
boot_default=$(ini_default_get "$ex_name" "boot" "false")
fi
if [[ -z "$boot_default" ]]; then boot_default="false"; fi
prompt_field "boot" "start at boot (before login)? requires sudo [true/false]" "bool" "$boot_default"
save_runner_field "$r_name" "boot" "$PROMPT_RESULT"
else
save_runner_field "$r_name" "boot" ""
CURRENT_PROMPT=$((CURRENT_PROMPT + 1))
fi
done done
# =========================================================================== # ===========================================================================