mode is only set when the user is automating (e.g. mode=default with
var_* overrides). The default bash -c curl invocation leaves mode empty
and shows the whiptail menu, so this check won't affect interactive use.
Check for missing token/URL only when mode is set AND there's no TTY,
so mode=default with a terminal still allows interactive prompts inside
the container.
Abort before build_container if mode is set (unattended) but no
runner registration token was provided. Avoids a 20+ minute container
build only to fail at the registration step.
CT script hardcoded the upstream URL for build.func, so the install
script was always fetched from upstream — ignoring fork/branch fixes.
Now respects COMMUNITY_SCRIPTS_URL override, consistent with how
build.func already handles this for all other resource fetching.
- Export app-specific variables (var_forgejo_instance, var_forgejo_runner_token,
var_runner_labels) in ct script so they survive lxc-attach into the container
- Replace nonexistent prompt_input_required/show_missing_values_warning calls
with standard read prompts that skip when variables are pre-set
- Add hard error when no runner token is provided
- Make runner labels configurable via var_runner_labels instead of hardcoded
- Update default runner image from node:20-bookworm to node:22-bookworm (Node 22 LTS)
Enhanced the is_unattended() function to prioritize the MODE variable for detecting unattended/non-interactive mode, with detailed handling for various modes and legacy fallbacks. Also, export MODE in build_container() to inform install scripts about the current mode. Updated APP name in forgejo-runner.sh for consistency.